summaryrefslogtreecommitdiff
path: root/gcc/config/msp430/msp430-protos.h
diff options
context:
space:
mode:
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-17 08:15:03 +0000
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>2013-09-17 08:15:03 +0000
commit62b2ccbeec113b02010ec185350214df592378ca (patch)
tree3bb014e5f02dba3bcadfe141ef501c948e46ba81 /gcc/config/msp430/msp430-protos.h
parent157cd65f8f218bfa79ae6765409f6bb122e71496 (diff)
downloadgcc-62b2ccbeec113b02010ec185350214df592378ca.tar.gz
* config/msp430/msp430-protos.h: Add prototypes for new functions.
* config/msp430/msp430.c (msp430_preserve_reg_p): Add support for interrupt handlers. (is_attr_func): New function. (msp430_is_interrupt_func): New function. (is_naked_func): New function. (is_reentrant_func): New function. (is_critical_func): New function. (msp430_start_function): Add annotations for function attributes. (msp430_attr): New function. (msp430_attribute_table): New. (msp430_function_section): New function. (TARGET_ASM_FUNCTION_SECTION): Define. (msp430_builtin): New enum. (msp430_init_builtins): New function. (msp430_builtin_devl): New function. (msp430_expand_builtin): New function. (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTINS): Define. (TARGET_BUILTIN_DECL): Define. (msp430_expand_prologue): Add support for naked, interrupt, critical and reentrant functions. (msp430_expand_epilogue): Likewise. (msp430_print_operand): Handle 'O' character. * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define NO_TRAMPOLINES. * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT, UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR. (pushm): Use a 'n' rather than an 'i' constraint. (msp_return): Add generation of the interrupt return instruction. (disable_interrupts): New pattern. (enable_interrupts): New pattern. (push_intr_state): New pattern. (pop_intr_state): New pattern. (bic_SR): New pattern. (bis_SR): New pattern. * doc/extend.texi: Document MSP430 function attributes and builtin functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202645 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/msp430/msp430-protos.h')
-rw-r--r--gcc/config/msp430/msp430-protos.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/msp430/msp430-protos.h b/gcc/config/msp430/msp430-protos.h
index df90d95c36e..f116855ecae 100644
--- a/gcc/config/msp430/msp430-protos.h
+++ b/gcc/config/msp430/msp430-protos.h
@@ -21,6 +21,7 @@
#ifndef GCC_MSP430_PROTOS_H
#define GCC_MSP430_PROTOS_H
+rtx msp430_eh_return_stackadj_rtx (void);
void msp430_expand_eh_return (rtx);
void msp430_expand_epilogue (int);
void msp430_expand_helper (rtx *operands, const char *, bool);
@@ -32,13 +33,14 @@ int msp430_hard_regno_nregs (int, enum machine_mode);
rtx msp430_incoming_return_addr_rtx (void);
void msp430_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
int msp430_initial_elimination_offset (int, int);
+bool msp430_is_interrupt_func (void);
const char * msp430x_logical_shift_right (rtx);
+bool msp430_modes_tieable_p (enum machine_mode, enum machine_mode);
void msp430_output_labelref (FILE *, const char *);
void msp430_register_pragmas (void);
rtx msp430_return_addr_rtx (int);
void msp430_split_movsi (rtx *);
rtx msp430_subreg (enum machine_mode, rtx, enum machine_mode, int);
-rtx msp430_eh_return_stackadj_rtx (void);
-bool msp430_modes_tieable_p (enum machine_mode, enum machine_mode);
+void msp430_start_function (FILE *, const char *, tree);
#endif /* GCC_MSP430_PROTOS_H */