1 /* Exported function prototypes from the TI MSP430 backend.
2 Copyright (C) 2012-2025 Free Software Foundation, Inc.
3 Contributed by Red Hat.
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
12 GCC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
21 #ifndef GCC_MSP430_PROTOS_H
22 #define GCC_MSP430_PROTOS_H
24 rtx
msp430_eh_return_stackadj_rtx (void);
25 void msp430_expand_eh_return (rtx
);
26 void msp430_expand_epilogue (int);
27 void msp430_expand_helper (rtx
*operands
, const char *, bool);
28 void msp430_expand_prologue (void);
29 int msp430x_extendhisi (rtx
*, bool);
30 void msp430_fixup_compare_operands (machine_mode
, rtx
*);
31 int msp430_hard_regno_nregs_has_padding (int, machine_mode
);
32 int msp430_hard_regno_nregs_with_padding (int, machine_mode
);
33 bool msp430_hwmult_enabled (void);
34 rtx
msp430_incoming_return_addr_rtx (void);
35 void msp430_init_cumulative_args (CUMULATIVE_ARGS
*, tree
, rtx
, tree
, int);
36 int msp430_initial_elimination_offset (int, int);
37 bool msp430_is_interrupt_func (void);
38 const char * msp430_mcu_name (void);
39 void msp430_output_aligned_decl_common (FILE *, const tree
, const char *,
40 unsigned HOST_WIDE_INT
, unsigned,
42 void msp430_output_labelref (FILE *, const char *);
43 void msp430_register_pragmas (void);
44 rtx
msp430_return_addr_rtx (int);
45 void msp430_split_movsi (rtx
*);
46 int msp430_split_addsi (rtx
*);
47 void msp430_start_function (FILE *, const char *, tree
);
48 rtx
msp430_subreg (machine_mode
, rtx
, machine_mode
, int);
49 bool msp430_use_f5_series_hwmult (void);
50 bool msp430_has_hwmult (void);
51 bool msp430_op_not_in_high_mem (rtx op
);
52 bool msp430x_insn_required (rtx op
);
55 int msp430_expand_shift (enum rtx_code code
, machine_mode mode
, rtx
*operands
);
56 int msp430_output_asm_shift_insns (enum rtx_code code
, machine_mode mode
, rtx
*operands
, bool);
59 #endif /* GCC_MSP430_PROTOS_H */