OSDN Git Service

* m32r.c: Include toplev.h.
[pf3gnuchains/gcc-fork.git] / gcc / config / m32r / m32r.h
index 903745f..4e11838 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler, Mitsubishi M32R cpu.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -706,10 +706,12 @@ M32R_STACK_ALIGN (current_function_outgoing_args_size)
 /* The current return address is in r14.  */
 #if 0 /* The default value should work.  */
 #define RETURN_ADDR_RTX(COUNT, FRAME) \
-(((COUNT) == -1)                               \
- ? gen_rtx (REG, Pmode, 14)                    \
- : copy_to_reg (gen_rtx (MEM, Pmode,           \
-                        memory_address (Pmode, plus_constant ((FRAME), UNITS_PER_WORD)))))
+(((COUNT) == -1)                                                       \
+ ? gen_rtx_REG (Pmode, 14)                                             \
+ : copy_to_reg (gen_rtx_MEM (Pmode,                                    \
+                            memory_address (Pmode,                     \
+                                            plus_constant ((FRAME),    \
+                                                           UNITS_PER_WORD)))))
 #endif
 
 /* Register to use for pushing function arguments.  */
@@ -918,14 +920,14 @@ M32R_STACK_ALIGN (current_function_outgoing_args_size)
    and the rest are pushed.  */
 #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
 (PASS_IN_REG_P ((CUM), (MODE), (TYPE), (NAMED))                                \
- ? gen_rtx (REG, (MODE), ROUND_ADVANCE_CUM ((CUM), (MODE), (TYPE)))    \
+ ? gen_rtx_REG ((MODE), ROUND_ADVANCE_CUM ((CUM), (MODE), (TYPE)))     \
  : 0)
 
 /* ??? Quick hack to try to get varargs working the normal way.  */
 #define FUNCTION_INCOMING_ARG(CUM, MODE, TYPE, NAMED) \
 (((! current_function_varargs || (NAMED))                              \
   && PASS_IN_REG_P ((CUM), (MODE), (TYPE), (NAMED)))                   \
- ? gen_rtx (REG, (MODE), ROUND_ADVANCE_CUM ((CUM), (MODE), (TYPE)))    \
+ ? gen_rtx_REG ((MODE), ROUND_ADVANCE_CUM ((CUM), (MODE), (TYPE)))     \
  : 0)
 
 /* A C expression for the number of words, at the beginning of an
@@ -1011,11 +1013,11 @@ m32r_setup_incoming_varargs (&ARGS_SO_FAR, MODE, TYPE, &PRETEND_SIZE, NO_RTL)
    VALTYPE is the data type of the value (as a tree).
    If the precise function being called is known, FUNC is its FUNCTION_DECL;
    otherwise, FUNC is 0.  */
-#define FUNCTION_VALUE(VALTYPE, FUNC) gen_rtx (REG, TYPE_MODE (VALTYPE), 0)
+#define FUNCTION_VALUE(VALTYPE, FUNC) gen_rtx_REG (TYPE_MODE (VALTYPE), 0)
 
 /* Define how to find the value returned by a library function
    assuming the value has mode MODE.  */
-#define LIBCALL_VALUE(MODE) gen_rtx (REG, MODE, 0)
+#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, 0)
 
 /* 1 if N is a possible register number for a function value
    as seen by the caller.  */
@@ -1095,13 +1097,13 @@ m32r_output_function_epilogue (FILE, SIZE)
    CXT is an RTX for the static chain value for the function.  */
 #define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
 do { \
-  emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 0)), \
+  emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 0)), \
                  plus_constant ((CXT), 0xe7000000)); \
-  emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 4)), \
+  emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 4)), \
                  plus_constant ((FNADDR), 0xe6000000)); \
-  emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 8)), \
+  emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 8)), \
                  GEN_INT (0x1fc67000)); \
-  emit_insn (gen_flush_icache (validize_mem (gen_rtx (MEM, SImode, TRAMP)))); \
+  emit_insn (gen_flush_icache (validize_mem (gen_rtx_MEM (SImode, TRAMP)))); \
 } while (0)
 \f
 /* Library calls.  */
@@ -1982,19 +1984,8 @@ enum m32r_function_type
 { "large_insn_p",              { INSN, CALL_INSN, JUMP_INSN }},
 
 /* Functions declared in m32r.c */
-#ifndef PROTO
-#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
-#define PROTO(ARGS) ARGS
-#else
-#define PROTO(ARGS) ()
-#endif
-#endif
-
-#ifdef BUFSIZ          /* stdio.h has been included, ok to use FILE * */
-#define STDIO_PROTO(ARGS) PROTO(ARGS)
-#else
-#define STDIO_PROTO(ARGS) ()
-#endif
+#define XPROTO(ARGS) ()
+#define STDIO_XPROTO(ARGS) ()
 
 #ifndef TREE_CODE
 union tree_node;
@@ -2010,65 +2001,68 @@ struct rtx_def;
 #define Rtx rtx
 #endif
 
-extern void sbss_section                       PROTO((void));
-extern void sdata_section                      PROTO((void));
-extern void m32r_init                          PROTO((void));
-extern int  m32r_valid_machine_decl_attribute  PROTO((Tree, Tree, Tree, Tree));
-extern int  m32r_comp_type_attributes          PROTO((Tree, Tree));
-extern void m32r_select_section                        PROTO((Tree, int));
-extern void m32r_encode_section_info           PROTO((Tree));
-extern void m32r_init_expanders                        PROTO((void));
-extern int  call_address_operand               PROTO((Rtx, int));
-extern int  call_operand                       PROTO((Rtx, int));
-extern int  symbolic_operand                   PROTO((Rtx, int));
-extern int  small_data_operand                 PROTO((Rtx, int));
-extern int  addr24_operand                     PROTO((Rtx, int));
-extern int  addr32_operand                     PROTO((Rtx, int));
-extern int  call26_operand                     PROTO((Rtx, int));
-extern int  seth_add3_operand                  PROTO((Rtx, int));
-extern int  cmp_int16_operand                  PROTO((Rtx, int));
-extern int  uint16_operand                     PROTO((Rtx, int));
-extern int  reg_or_int16_operand               PROTO((Rtx, int));
-extern int  reg_or_uint16_operand              PROTO((Rtx, int));
-extern int  reg_or_cmp_nt16_operand            PROTO((Rtx, int));
-extern int  two_insn_const_operand             PROTO((Rtx, int));
-extern int  move_src_operand                   PROTO((Rtx, int));
-extern int  move_double_src_operand            PROTO((Rtx, int));
-extern int  move_dest_operand                  PROTO((Rtx, int));
-extern int  easy_di_const                      PROTO((Rtx));
-extern int  easy_df_const                      PROTO((Rtx));
-extern int  eqne_comparison_operator           PROTO((Rtx, int));
-extern int  signed_comparison_operator         PROTO((Rtx, int));
-extern int  memreg_operand                     PROTO((Rtx, int));
-extern int  small_insn_p                       PROTO((Rtx, int));
-extern int  large_insn_p                       PROTO((Rtx, int));
-extern int  m32r_select_cc_mode                        PROTO((int, Rtx, Rtx));
-extern Rtx  gen_compare                                PROTO((int, Rtx, Rtx, int));
-extern Rtx  gen_split_move_double              PROTO((Rtx *));
-extern int  function_arg_partial_nregs         PROTO((CUMULATIVE_ARGS *,
+extern void sbss_section                       XPROTO((void));
+extern void sdata_section                      XPROTO((void));
+extern void m32r_init                          XPROTO((void));
+extern int  m32r_valid_machine_decl_attribute  XPROTO((Tree, Tree, Tree, Tree));
+extern int  m32r_comp_type_attributes          XPROTO((Tree, Tree));
+extern void m32r_select_section                        XPROTO((Tree, int));
+extern void m32r_encode_section_info           XPROTO((Tree));
+extern void m32r_init_expanders                        XPROTO((void));
+extern int  call_address_operand               XPROTO((Rtx, enum machine_mode));
+extern int  call_operand                       XPROTO((Rtx, enum machine_mode));
+extern int  symbolic_operand                   XPROTO((Rtx, enum machine_mode));
+extern int  small_data_operand                 XPROTO((Rtx, enum machine_mode));
+extern int  addr24_operand                     XPROTO((Rtx, enum machine_mode));
+extern int  addr32_operand                     XPROTO((Rtx, enum machine_mode));
+extern int  call26_operand                     XPROTO((Rtx, enum machine_mode));
+extern int  seth_add3_operand                  XPROTO((Rtx, enum machine_mode));
+extern int  cmp_int16_operand                  XPROTO((Rtx, enum machine_mode));
+extern int  uint16_operand                     XPROTO((Rtx, enum machine_mode));
+extern int  reg_or_int16_operand               XPROTO((Rtx, enum machine_mode));
+extern int  reg_or_uint16_operand              XPROTO((Rtx, enum machine_mode));
+extern int  reg_or_cmp_nt16_operand            XPROTO((Rtx, enum machine_mode));
+extern int  two_insn_const_operand             XPROTO((Rtx, enum machine_mode));
+extern int  move_src_operand                   XPROTO((Rtx, enum machine_mode));
+extern int  move_double_src_operand            XPROTO((Rtx, enum machine_mode));
+extern int  move_dest_operand                  XPROTO((Rtx, enum machine_mode));
+extern int  easy_di_const                      XPROTO((Rtx));
+extern int  easy_df_const                      XPROTO((Rtx));
+extern int  eqne_comparison_operator           XPROTO((Rtx, enum machine_mode));
+extern int  signed_comparison_operator         XPROTO((Rtx, enum machine_mode));
+extern int  memreg_operand                     XPROTO((Rtx, enum machine_mode));
+extern int  small_insn_p                       XPROTO((Rtx, enum machine_mode));
+extern int  large_insn_p                       XPROTO((Rtx, enum machine_mode));
+extern int  m32r_select_cc_mode                        XPROTO((int, Rtx, Rtx));
+extern Rtx  gen_compare                                XPROTO((int, Rtx, Rtx, int));
+extern Rtx  gen_split_move_double              XPROTO((Rtx *));
+extern int  function_arg_partial_nregs         XPROTO((CUMULATIVE_ARGS *,
                                                       int, Tree, int));
-extern void m32r_setup_incoming_varargs                PROTO((CUMULATIVE_ARGS *,
+extern void m32r_setup_incoming_varargs                XPROTO((CUMULATIVE_ARGS *,
                                                       int, Tree, int *,
                                                       int));
-extern struct rtx_def *m32r_va_arg             PROTO((Tree, Tree));
-extern int  m32r_address_code                  PROTO((Rtx));
+extern struct rtx_def *m32r_va_arg             XPROTO((Tree, Tree));
+extern int  m32r_address_code                  XPROTO((Rtx));
 extern enum m32r_function_type m32r_compute_function_type
-                                               PROTO((Tree));
-extern unsigned m32r_compute_frame_size                PROTO((int));
-extern int  m32r_first_insn_address            PROTO((void));
-extern void m32r_expand_prologue               PROTO((void));
-extern void m32r_output_function_prologue      STDIO_PROTO((FILE *, int));
-extern void m32r_output_function_epilogue      STDIO_PROTO((FILE *, int));
-extern void m32r_finalize_pic                  PROTO((void));
-extern void m32r_initialize_trampoline         PROTO((Rtx, Rtx, Rtx));
-extern void m32r_asm_file_start                        STDIO_PROTO((FILE *));
-extern void m32r_print_operand                 STDIO_PROTO((FILE *, Rtx, int));
-extern void m32r_print_operand_address         STDIO_PROTO((FILE *, Rtx));
-extern int  zero_and_one                       PROTO((Rtx, Rtx));
-extern int  conditional_move_operand           PROTO((Rtx, int));
-extern int  carry_compare_operand              PROTO((Rtx, int));
-extern char *emit_cond_move                    PROTO((Rtx *, Rtx));
-
-extern char * m32r_output_block_move PROTO((Rtx, Rtx *));
-extern int    m32r_block_immediate_operand PROTO((Rtx, int));
-extern void   m32r_expand_block_move PROTO((Rtx *));
+                                               XPROTO((Tree));
+extern unsigned m32r_compute_frame_size                XPROTO((int));
+extern int  m32r_first_insn_address            XPROTO((void));
+extern void m32r_expand_prologue               XPROTO((void));
+extern void m32r_output_function_prologue      STDIO_XPROTO((FILE *, int));
+extern void m32r_output_function_epilogue      STDIO_XPROTO((FILE *, int));
+extern void m32r_finalize_pic                  XPROTO((void));
+extern void m32r_initialize_trampoline         XPROTO((Rtx, Rtx, Rtx));
+extern void m32r_asm_file_start                        STDIO_XPROTO((FILE *));
+extern void m32r_print_operand                 STDIO_XPROTO((FILE *, Rtx, int));
+extern void m32r_print_operand_address         STDIO_XPROTO((FILE *, Rtx));
+extern int  zero_and_one                       XPROTO((Rtx, Rtx));
+extern int  conditional_move_operand           XPROTO((Rtx, enum machine_mode));
+extern int  carry_compare_operand              XPROTO((Rtx, enum machine_mode));
+extern char *emit_cond_move                    XPROTO((Rtx *, Rtx));
+
+extern char * m32r_output_block_move XPROTO((Rtx, Rtx *));
+extern int    m32r_block_immediate_operand XPROTO((Rtx, enum machine_mode));
+extern void   m32r_expand_block_move XPROTO((Rtx *));
+
+#undef XPROTO
+#undef STDIO_XPROTO