Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/rx/rx-protos.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Exported function prototypes from the Renesas RX backend. | 1 /* Exported function prototypes from the Renesas RX backend. |
2 Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | 2 Copyright (C) 2008-2017 Free Software Foundation, Inc. |
3 Contributed by Red Hat. | 3 Contributed by Red Hat. |
4 | 4 |
5 This file is part of GCC. | 5 This file is part of GCC. |
6 | 6 |
7 GCC is free software; you can redistribute it and/or modify | 7 GCC is free software; you can redistribute it and/or modify |
19 <http://www.gnu.org/licenses/>. */ | 19 <http://www.gnu.org/licenses/>. */ |
20 | 20 |
21 #ifndef GCC_RX_PROTOS_H | 21 #ifndef GCC_RX_PROTOS_H |
22 #define GCC_RX_PROTOS_H | 22 #define GCC_RX_PROTOS_H |
23 | 23 |
24 /* A few abbreviations to make the prototypes shorter. */ | 24 extern bool rx_can_use_simple_return (void); |
25 #define Mmode enum machine_mode | 25 extern void rx_expand_epilogue (bool); |
26 #define Fargs CUMULATIVE_ARGS | |
27 #define Rcode enum rtx_code | |
28 | |
29 extern void rx_expand_prologue (void); | 26 extern void rx_expand_prologue (void); |
30 extern int rx_initial_elimination_offset (int, int); | 27 extern int rx_initial_elimination_offset (int, int); |
31 | 28 |
29 bool is_interrupt_func (const_tree decl); | |
30 bool is_fast_interrupt_func (const_tree decl); | |
31 | |
32 /* rx_atomic_sequence is used to emit the header and footer | |
33 of an atomic sequence. It's supposed to be used in a scope. | |
34 When constructed, it will emit the atomic sequence header insns. | |
35 When destructred (goes out of scope), it will emit the | |
36 corresponding atomic sequence footer insns. */ | |
37 class rx_atomic_sequence | |
38 { | |
39 public: | |
40 rx_atomic_sequence (const_tree fun_decl); | |
41 ~rx_atomic_sequence (void); | |
42 | |
43 private: | |
44 rx_atomic_sequence (void); | |
45 rx_atomic_sequence (const rx_atomic_sequence&); | |
46 rx_atomic_sequence& operator = (const rx_atomic_sequence&); | |
47 | |
48 rtx m_prev_psw_reg; | |
49 }; | |
50 | |
32 #ifdef RTX_CODE | 51 #ifdef RTX_CODE |
52 extern int rx_adjust_insn_length (rtx_insn *, int); | |
53 extern int rx_align_for_label (rtx, int); | |
33 extern void rx_emit_stack_popm (rtx *, bool); | 54 extern void rx_emit_stack_popm (rtx *, bool); |
34 extern void rx_emit_stack_pushm (rtx *); | 55 extern void rx_emit_stack_pushm (rtx *); |
35 extern void rx_expand_epilogue (bool); | |
36 extern char * rx_gen_move_template (rtx *, bool); | 56 extern char * rx_gen_move_template (rtx *, bool); |
37 extern bool rx_is_legitimate_constant (rtx); | 57 extern bool rx_is_legitimate_constant (machine_mode, rtx); |
38 extern bool rx_is_restricted_memory_address (rtx, Mmode); | 58 extern bool rx_is_restricted_memory_address (rtx, |
39 extern void rx_notice_update_cc (rtx body, rtx insn); | 59 machine_mode); |
40 extern void rx_split_cbranch (Mmode, Rcode, rtx, rtx, rtx); | 60 extern bool rx_match_ccmode (rtx, machine_mode); |
41 extern Mmode rx_select_cc_mode (Rcode, rtx, rtx); | 61 extern rtx rx_maybe_pidify_operand (rtx, int); |
42 extern bool rx_match_ccmode (rtx, Mmode); | 62 extern void rx_notice_update_cc (rtx, rtx); |
63 extern void rx_split_cbranch (machine_mode, enum rtx_code, | |
64 rtx, rtx, rtx); | |
65 extern machine_mode rx_select_cc_mode (enum rtx_code, rtx, rtx); | |
43 #endif | 66 #endif |
44 | 67 |
45 #endif /* GCC_RX_PROTOS_H */ | 68 #endif /* GCC_RX_PROTOS_H */ |