| Index: gcc/gcc/config/m32r/m32r.h
|
| diff --git a/gcc/gcc/config/m32r/m32r.h b/gcc/gcc/config/m32r/m32r.h
|
| index f2f7e891201063a3d55affc652d2a48f73454069..7b6237a7c22c994ffda82d0ecc87a0b6159e1bfd 100644
|
| --- a/gcc/gcc/config/m32r/m32r.h
|
| +++ b/gcc/gcc/config/m32r/m32r.h
|
| @@ -1,6 +1,6 @@
|
| /* Definitions of target machine for GNU compiler, Renesas M32R cpu.
|
| Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
| - 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
| + 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
|
|
| This file is part of GCC.
|
|
|
| @@ -770,11 +770,6 @@ extern enum reg_class m32r_regno_reg_class[FIRST_PSEUDO_REGISTER];
|
|
|
| /* Eliminating the frame and arg pointers. */
|
|
|
| -/* A C expression which is nonzero if a function must have and use a
|
| - frame pointer. This expression is evaluated in the reload pass.
|
| - If its value is nonzero the function will have a frame pointer. */
|
| -#define FRAME_POINTER_REQUIRED cfun->calls_alloca
|
| -
|
| #if 0
|
| /* C statement to store the difference between the frame pointer
|
| and the stack pointer values immediately after the function prologue.
|
| @@ -798,18 +793,6 @@ extern enum reg_class m32r_regno_reg_class[FIRST_PSEUDO_REGISTER];
|
| { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM }, \
|
| { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM }}
|
|
|
| -/* A C expression that returns nonzero if the compiler is allowed to
|
| - try to replace register number FROM-REG with register number
|
| - TO-REG. This macro need only be defined if `ELIMINABLE_REGS' is
|
| - defined, and will usually be the constant 1, since most of the
|
| - cases preventing register elimination are things that the compiler
|
| - already knows about. */
|
| -
|
| -#define CAN_ELIMINATE(FROM, TO) \
|
| - ((FROM) == ARG_POINTER_REGNUM && (TO) == STACK_POINTER_REGNUM \
|
| - ? ! frame_pointer_needed \
|
| - : 1)
|
| -
|
| /* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'. It
|
| specifies the initial difference between the specified pair of
|
| registers. This macro must be defined if `ELIMINABLE_REGS' is
|
| @@ -1007,38 +990,6 @@ L2: .word STATIC
|
| /* Length in bytes of the trampoline for entering a nested function. */
|
| #define TRAMPOLINE_SIZE 24
|
|
|
| -/* Emit RTL insns to initialize the variable parts of a trampoline.
|
| - FNADDR is an RTX for the address of the function's pure code.
|
| - 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)), \
|
| - gen_int_mode (TARGET_LITTLE_ENDIAN ? \
|
| - 0x017e8e17 : 0x178e7e01, SImode)); \
|
| - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 4)), \
|
| - gen_int_mode (TARGET_LITTLE_ENDIAN ? \
|
| - 0x0c00ae86 : 0x86ae000c, SImode)); \
|
| - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 8)), \
|
| - gen_int_mode (TARGET_LITTLE_ENDIAN ? \
|
| - 0xe627871e : 0x1e8727e6, SImode)); \
|
| - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 12)), \
|
| - gen_int_mode (TARGET_LITTLE_ENDIAN ? \
|
| - 0xc616c626 : 0x26c61fc6, SImode)); \
|
| - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 16)), \
|
| - (CXT)); \
|
| - emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 20)), \
|
| - (FNADDR)); \
|
| - if (m32r_cache_flush_trap >= 0) \
|
| - emit_insn (gen_flush_icache (validize_mem (gen_rtx_MEM (SImode, TRAMP)),\
|
| - gen_int_mode (m32r_cache_flush_trap, SImode))); \
|
| - else if (m32r_cache_flush_func && m32r_cache_flush_func[0]) \
|
| - emit_library_call (m32r_function_symbol (m32r_cache_flush_func), \
|
| - 0, VOIDmode, 3, TRAMP, Pmode, \
|
| - gen_int_mode (TRAMPOLINE_SIZE, SImode), SImode, \
|
| - GEN_INT (3), SImode); \
|
| - } \
|
| - while (0)
|
|
|
| #define RETURN_ADDR_RTX(COUNT, FRAME) m32r_return_addr (COUNT)
|
|
|
| @@ -1059,7 +1010,7 @@ L2: .word STATIC
|
| #define CONSTANT_ADDRESS_P(X) \
|
| ( GET_CODE (X) == LABEL_REF \
|
| || GET_CODE (X) == SYMBOL_REF \
|
| - || GET_CODE (X) == CONST_INT \
|
| + || CONST_INT_P (X) \
|
| || (GET_CODE (X) == CONST \
|
| && ! (flag_pic && ! m32r_legitimate_pic_operand_p (X))))
|
|
|
| @@ -1073,7 +1024,7 @@ L2: .word STATIC
|
| (! (GET_CODE (X) == CONST \
|
| && GET_CODE (XEXP (X, 0)) == PLUS \
|
| && (GET_CODE (XEXP (XEXP (X, 0), 0)) == SYMBOL_REF || GET_CODE (XEXP (XEXP (X, 0), 0)) == LABEL_REF) \
|
| - && GET_CODE (XEXP (XEXP (X, 0), 1)) == CONST_INT \
|
| + && CONST_INT_P (XEXP (XEXP (X, 0), 1)) \
|
| && (unsigned HOST_WIDE_INT) INTVAL (XEXP (XEXP (X, 0), 1)) > 32767))
|
|
|
| /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
|
| @@ -1120,7 +1071,7 @@ L2: .word STATIC
|
|
|
| /* Local to this file. */
|
| #define RTX_OK_FOR_OFFSET_P(X) \
|
| - (GET_CODE (X) == CONST_INT && INT16_P (INTVAL (X)))
|
| + (CONST_INT_P (X) && INT16_P (INTVAL (X)))
|
|
|
| /* Local to this file. */
|
| #define LEGITIMATE_OFFSET_ADDRESS_P(MODE, X) \
|
| @@ -1142,7 +1093,7 @@ L2: .word STATIC
|
| #define LOAD_POSTINC_P(MODE, X) \
|
| (((MODE) == SImode || (MODE) == SFmode) \
|
| && GET_CODE (X) == POST_INC \
|
| - && GET_CODE (XEXP (X, 0)) == REG \
|
| + && REG_P (XEXP (X, 0)) \
|
| && RTX_OK_FOR_BASE_P (XEXP (X, 0)))
|
|
|
| /* Local to this file. */
|
| @@ -1150,7 +1101,7 @@ L2: .word STATIC
|
| #define STORE_PREINC_PREDEC_P(MODE, X) \
|
| (((MODE) == SImode || (MODE) == SFmode) \
|
| && (GET_CODE (X) == PRE_INC || GET_CODE (X) == PRE_DEC) \
|
| - && GET_CODE (XEXP (X, 0)) == REG \
|
| + && REG_P (XEXP (X, 0)) \
|
| && RTX_OK_FOR_BASE_P (XEXP (X, 0)))
|
|
|
| #define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
|
| @@ -1169,29 +1120,6 @@ L2: .word STATIC
|
| } \
|
| while (0)
|
|
|
| -/* Try machine-dependent ways of modifying an illegitimate address
|
| - to be legitimate. If we find one, return the new, valid address.
|
| - This macro is used in only one place: `memory_address' in explow.c.
|
| -
|
| - OLDX is the address as it was before break_out_memory_refs was called.
|
| - In some cases it is useful to look at this to decide what needs to be done.
|
| -
|
| - MODE and WIN are passed so that this macro can use
|
| - GO_IF_LEGITIMATE_ADDRESS.
|
| -
|
| - It is always safe for this macro to do nothing. It exists to recognize
|
| - opportunities to optimize the output. */
|
| -
|
| -#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) \
|
| - do \
|
| - { \
|
| - if (flag_pic) \
|
| - (X) = m32r_legitimize_pic_address (X, NULL_RTX); \
|
| - if (memory_address_p (MODE, X)) \
|
| - goto WIN; \
|
| - } \
|
| - while (0)
|
| -
|
| /* Go to LABEL if ADDR (a legitimate address expression)
|
| has an effect that depends on the machine mode it is used for. */
|
| #define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
| @@ -1518,12 +1446,6 @@ extern char m32r_punct_chars[256];
|
| /* A function address in a call instruction. */
|
| #define FUNCTION_MODE SImode
|
|
|
| -/* Define the information needed to generate branch and scc insns. This is
|
| - stored from the compare operation. Note that we can't use "rtx" here
|
| - since it hasn't been defined! */
|
| -extern struct rtx_def * m32r_compare_op0;
|
| -extern struct rtx_def * m32r_compare_op1;
|
| -
|
| /* M32R function types. */
|
| enum m32r_function_type
|
| {
|
|
|