sparc.h (REG_OK_FOR_INDEX_P, [...]): Remove.
* config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove. (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to... * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): ...here. (sparc_mode_dependent_address_p): Use symbolic_operand instead of SYMBOLIC_CONST. From-SVN: r173714
This commit is contained in:
parent
acf9814605
commit
8b9a1428e5
|
@ -1,3 +1,13 @@
|
|||
2011-05-12 Anatoly Sokolov <aesok@post.ru>
|
||||
|
||||
* config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
|
||||
SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
|
||||
(RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
|
||||
* config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
|
||||
RTX_OK_FOR_OLO10_P): ...here.
|
||||
(sparc_mode_dependent_address_p): Use symbolic_operand instead of
|
||||
SYMBOLIC_CONST.
|
||||
|
||||
2011-05-12 Kai Tietz <ktietz@redhat.com>
|
||||
|
||||
* gimplify.c (gimple_boolify): Re-boolify expression
|
||||
|
|
|
@ -3110,8 +3110,16 @@ legitimate_pic_operand_p (rtx x)
|
|||
return true;
|
||||
}
|
||||
|
||||
/* Return nonzero if ADDR is a valid memory address.
|
||||
STRICT specifies whether strict register checking applies. */
|
||||
#define RTX_OK_FOR_OFFSET_P(X) \
|
||||
(CONST_INT_P (X) && INTVAL (X) >= -0x1000 && INTVAL (X) < 0x1000 - 8)
|
||||
|
||||
#define RTX_OK_FOR_OLO10_P(X) \
|
||||
(CONST_INT_P (X) && INTVAL (X) >= -0x1000 && INTVAL (X) < 0xc00 - 8)
|
||||
|
||||
/* Handle the TARGET_LEGITIMATE_ADDRESS_P target hook.
|
||||
|
||||
On SPARC, the actual legitimate addresses must be REG+REG or REG+SMALLINT
|
||||
ordinarily. This changes a bit when generating PIC. */
|
||||
|
||||
static bool
|
||||
sparc_legitimate_address_p (enum machine_mode mode, rtx addr, bool strict)
|
||||
|
@ -3706,7 +3714,7 @@ sparc_mode_dependent_address_p (const_rtx addr)
|
|||
rtx op0 = XEXP (addr, 0);
|
||||
rtx op1 = XEXP (addr, 1);
|
||||
if (op0 == pic_offset_table_rtx
|
||||
&& SYMBOLIC_CONST (op1))
|
||||
&& symbolic_operand (op1, VOIDmode))
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1538,41 +1538,6 @@ do { \
|
|||
addresses which require two reload registers. */
|
||||
|
||||
#define LEGITIMATE_PIC_OPERAND_P(X) legitimate_pic_operand_p (X)
|
||||
|
||||
/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
|
||||
and check its validity for a certain class.
|
||||
We have two alternate definitions for each of them.
|
||||
The usual definition accepts all pseudo regs; the other rejects
|
||||
them unless they have been allocated suitable hard regs.
|
||||
The symbol REG_OK_STRICT causes the latter definition to be used.
|
||||
|
||||
Most source files want to accept pseudo regs in the hope that
|
||||
they will get allocated to the class that the insn wants them to be in.
|
||||
Source files for reload pass need to be strict.
|
||||
After reload, it makes no difference, since pseudo regs have
|
||||
been eliminated by then. */
|
||||
|
||||
#ifndef REG_OK_STRICT
|
||||
|
||||
/* Nonzero if X is a hard reg that can be used as an index
|
||||
or if it is a pseudo reg. */
|
||||
#define REG_OK_FOR_INDEX_P(X) \
|
||||
(REGNO (X) < 32 \
|
||||
|| REGNO (X) == FRAME_POINTER_REGNUM \
|
||||
|| REGNO (X) >= FIRST_PSEUDO_REGISTER)
|
||||
|
||||
/* Nonzero if X is a hard reg that can be used as a base reg
|
||||
or if it is a pseudo reg. */
|
||||
#define REG_OK_FOR_BASE_P(X) REG_OK_FOR_INDEX_P (X)
|
||||
|
||||
#else
|
||||
|
||||
/* Nonzero if X is a hard reg that can be used as an index. */
|
||||
#define REG_OK_FOR_INDEX_P(X) REGNO_OK_FOR_INDEX_P (REGNO (X))
|
||||
/* Nonzero if X is a hard reg that can be used as a base reg. */
|
||||
#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P (REGNO (X))
|
||||
|
||||
#endif
|
||||
|
||||
/* Should gcc use [%reg+%lo(xx)+offset] addresses? */
|
||||
|
||||
|
@ -1581,31 +1546,6 @@ do { \
|
|||
#else
|
||||
#define USE_AS_OFFSETABLE_LO10 0
|
||||
#endif
|
||||
|
||||
/* On SPARC, the actual legitimate addresses must be REG+REG or REG+SMALLINT
|
||||
ordinarily. This changes a bit when generating PIC. The details are
|
||||
in sparc.c's implementation of TARGET_LEGITIMATE_ADDRESS_P. */
|
||||
|
||||
#define SYMBOLIC_CONST(X) symbolic_operand (X, VOIDmode)
|
||||
|
||||
#define RTX_OK_FOR_BASE_P(X) \
|
||||
((GET_CODE (X) == REG && REG_OK_FOR_BASE_P (X)) \
|
||||
|| (GET_CODE (X) == SUBREG \
|
||||
&& GET_CODE (SUBREG_REG (X)) == REG \
|
||||
&& REG_OK_FOR_BASE_P (SUBREG_REG (X))))
|
||||
|
||||
#define RTX_OK_FOR_INDEX_P(X) \
|
||||
((GET_CODE (X) == REG && REG_OK_FOR_INDEX_P (X)) \
|
||||
|| (GET_CODE (X) == SUBREG \
|
||||
&& GET_CODE (SUBREG_REG (X)) == REG \
|
||||
&& REG_OK_FOR_INDEX_P (SUBREG_REG (X))))
|
||||
|
||||
#define RTX_OK_FOR_OFFSET_P(X) \
|
||||
(GET_CODE (X) == CONST_INT && INTVAL (X) >= -0x1000 && INTVAL (X) < 0x1000 - 8)
|
||||
|
||||
#define RTX_OK_FOR_OLO10_P(X) \
|
||||
(GET_CODE (X) == CONST_INT && INTVAL (X) >= -0x1000 && INTVAL (X) < 0xc00 - 8)
|
||||
|
||||
|
||||
/* Try a machine-dependent way of reloading an illegitimate address
|
||||
operand. If we find one, push the reload and jump to WIN. This
|
||||
|
|
Loading…
Reference in New Issue