diff 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
line wrap: on
line diff
--- a/gcc/config/rx/rx-protos.h	Sun Aug 21 07:07:55 2011 +0900
+++ b/gcc/config/rx/rx-protos.h	Fri Oct 27 22:46:09 2017 +0900
@@ -1,5 +1,5 @@
 /* Exported function prototypes from the Renesas RX backend.
-   Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
    Contributed by Red Hat.
 
    This file is part of GCC.
@@ -21,25 +21,48 @@
 #ifndef GCC_RX_PROTOS_H
 #define GCC_RX_PROTOS_H
 
-/* A few abbreviations to make the prototypes shorter.  */
-#define Mmode 	enum machine_mode
-#define Fargs	CUMULATIVE_ARGS
-#define Rcode	enum rtx_code
-
+extern bool             rx_can_use_simple_return (void);
+extern void		rx_expand_epilogue (bool);
 extern void		rx_expand_prologue (void);
 extern int		rx_initial_elimination_offset (int, int);
 
+bool is_interrupt_func (const_tree decl);
+bool is_fast_interrupt_func (const_tree decl);
+
+/* rx_atomic_sequence is used to emit the header and footer
+   of an atomic sequence.  It's supposed to be used in a scope.
+   When constructed, it will emit the atomic sequence header insns.
+   When destructred (goes out of scope), it will emit the
+   corresponding atomic sequence footer insns.  */
+class rx_atomic_sequence
+{
+public:
+  rx_atomic_sequence (const_tree fun_decl);
+  ~rx_atomic_sequence (void);
+
+private:
+  rx_atomic_sequence (void);
+  rx_atomic_sequence (const rx_atomic_sequence&);
+  rx_atomic_sequence& operator = (const rx_atomic_sequence&);
+
+  rtx m_prev_psw_reg;
+};
+
 #ifdef RTX_CODE
+extern int		rx_adjust_insn_length (rtx_insn *, int);
+extern int 		rx_align_for_label (rtx, int);
 extern void             rx_emit_stack_popm (rtx *, bool);
 extern void             rx_emit_stack_pushm (rtx *);
-extern void		rx_expand_epilogue (bool);
 extern char *		rx_gen_move_template (rtx *, bool);
-extern bool		rx_is_legitimate_constant (rtx);
-extern bool		rx_is_restricted_memory_address (rtx, Mmode);
-extern void		rx_notice_update_cc (rtx body, rtx insn);
-extern void		rx_split_cbranch (Mmode, Rcode, rtx, rtx, rtx);
-extern Mmode		rx_select_cc_mode (Rcode, rtx, rtx);
-extern bool		rx_match_ccmode (rtx, Mmode);
+extern bool		rx_is_legitimate_constant (machine_mode, rtx);
+extern bool		rx_is_restricted_memory_address (rtx,
+							 machine_mode);
+extern bool		rx_match_ccmode (rtx, machine_mode);
+extern rtx		rx_maybe_pidify_operand (rtx, int);
+extern void		rx_notice_update_cc (rtx, rtx);
+extern void		rx_split_cbranch (machine_mode, enum rtx_code,
+					  rtx, rtx, rtx);
+extern machine_mode	rx_select_cc_mode (enum rtx_code, rtx, rtx);
 #endif
 
 #endif /* GCC_RX_PROTOS_H */