Home | History | Annotate | Line # | Download | only in rx
rx-protos.h revision 1.8
      1  1.1  mrg /* Exported function prototypes from the Renesas RX backend.
      2  1.8  mrg    Copyright (C) 2008-2017 Free Software Foundation, Inc.
      3  1.1  mrg    Contributed by Red Hat.
      4  1.1  mrg 
      5  1.1  mrg    This file is part of GCC.
      6  1.1  mrg 
      7  1.1  mrg    GCC is free software; you can redistribute it and/or modify
      8  1.1  mrg    it under the terms of the GNU General Public License as published by
      9  1.1  mrg    the Free Software Foundation; either version 3, or (at your option)
     10  1.1  mrg    any later version.
     11  1.1  mrg 
     12  1.1  mrg    GCC is distributed in the hope that it will be useful,
     13  1.1  mrg    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14  1.1  mrg    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15  1.1  mrg    GNU General Public License for more details.
     16  1.1  mrg 
     17  1.1  mrg    You should have received a copy of the GNU General Public License
     18  1.1  mrg    along with GCC; see the file COPYING3.  If not see
     19  1.1  mrg    <http://www.gnu.org/licenses/>.  */
     20  1.1  mrg 
     21  1.1  mrg #ifndef GCC_RX_PROTOS_H
     22  1.1  mrg #define GCC_RX_PROTOS_H
     23  1.1  mrg 
     24  1.3  mrg extern bool             rx_can_use_simple_return (void);
     25  1.3  mrg extern void		rx_expand_epilogue (bool);
     26  1.1  mrg extern void		rx_expand_prologue (void);
     27  1.1  mrg extern int		rx_initial_elimination_offset (int, int);
     28  1.1  mrg 
     29  1.8  mrg bool is_interrupt_func (const_tree decl);
     30  1.8  mrg bool is_fast_interrupt_func (const_tree decl);
     31  1.8  mrg 
     32  1.8  mrg /* rx_atomic_sequence is used to emit the header and footer
     33  1.8  mrg    of an atomic sequence.  It's supposed to be used in a scope.
     34  1.8  mrg    When constructed, it will emit the atomic sequence header insns.
     35  1.8  mrg    When destructred (goes out of scope), it will emit the
     36  1.8  mrg    corresponding atomic sequence footer insns.  */
     37  1.8  mrg class rx_atomic_sequence
     38  1.8  mrg {
     39  1.8  mrg public:
     40  1.8  mrg   rx_atomic_sequence (const_tree fun_decl);
     41  1.8  mrg   ~rx_atomic_sequence (void);
     42  1.8  mrg 
     43  1.8  mrg private:
     44  1.8  mrg   rx_atomic_sequence (void);
     45  1.8  mrg   rx_atomic_sequence (const rx_atomic_sequence&);
     46  1.8  mrg   rx_atomic_sequence& operator = (const rx_atomic_sequence&);
     47  1.8  mrg 
     48  1.8  mrg   rtx m_prev_psw_reg;
     49  1.8  mrg };
     50  1.8  mrg 
     51  1.1  mrg #ifdef RTX_CODE
     52  1.5  mrg extern int		rx_adjust_insn_length (rtx_insn *, int);
     53  1.3  mrg extern int 		rx_align_for_label (rtx, int);
     54  1.1  mrg extern void             rx_emit_stack_popm (rtx *, bool);
     55  1.1  mrg extern void             rx_emit_stack_pushm (rtx *);
     56  1.1  mrg extern char *		rx_gen_move_template (rtx *, bool);
     57  1.5  mrg extern bool		rx_is_legitimate_constant (machine_mode, rtx);
     58  1.3  mrg extern bool		rx_is_restricted_memory_address (rtx,
     59  1.5  mrg 							 machine_mode);
     60  1.5  mrg extern bool		rx_match_ccmode (rtx, machine_mode);
     61  1.3  mrg extern rtx		rx_maybe_pidify_operand (rtx, int);
     62  1.3  mrg extern void		rx_notice_update_cc (rtx, rtx);
     63  1.5  mrg extern void		rx_split_cbranch (machine_mode, enum rtx_code,
     64  1.3  mrg 					  rtx, rtx, rtx);
     65  1.5  mrg extern machine_mode	rx_select_cc_mode (enum rtx_code, rtx, rtx);
     66  1.1  mrg #endif
     67  1.1  mrg 
     68  1.1  mrg #endif /* GCC_RX_PROTOS_H */
     69