(CONST_COSTS): Updated to better reflect
the actual constant costs on a we32k. (GO_IF_LEGITIMATE_ADDRESS): Added support for deferred addressing. From-SVN: r3482
This commit is contained in:
parent
cd3383a393
commit
4de54e922f
@ -580,10 +580,14 @@ enum reg_class { NO_REGS, GENERAL_REGS,
|
||||
|
||||
#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \
|
||||
{ register rtx Addr = X; \
|
||||
if (REG_P(Addr) && REG_OK_FOR_BASE_P(Addr)) \
|
||||
goto LABEL; \
|
||||
if ((MODE) == QImode || (MODE) == HImode || \
|
||||
(MODE) == PSImode || (MODE) == SImode || (MODE) == SFmode) \
|
||||
if (GET_CODE(Addr) == MEM) \
|
||||
Addr = XEXP(Addr, 0); \
|
||||
if (CONSTANT_ADDRESS_P(Addr)) \
|
||||
goto LABEL; \
|
||||
if (REG_P(Addr) && REG_OK_FOR_BASE_P(Addr)) \
|
||||
goto LABEL; \
|
||||
if (GET_CODE(Addr) == PLUS && \
|
||||
((REG_P(XEXP(Addr, 0)) && REG_OK_FOR_BASE_P(XEXP(Addr, 0)) && \
|
||||
CONSTANT_ADDRESS_P(XEXP(Addr, 1))) || \
|
||||
@ -672,14 +676,16 @@ enum reg_class { NO_REGS, GENERAL_REGS,
|
||||
of a switch statement. If the code is computed here,
|
||||
return it with a return statement. Otherwise, break from the switch. */
|
||||
|
||||
#define CONST_COSTS(RTX,CODE, OUTER_CODE) \
|
||||
case CONST_INT: \
|
||||
if ((unsigned) INTVAL (RTX) < 077) return 1; \
|
||||
case CONST: \
|
||||
case LABEL_REF: \
|
||||
case SYMBOL_REF: \
|
||||
return 3; \
|
||||
case CONST_DOUBLE: \
|
||||
#define CONST_COSTS(RTX,CODE, OUTER_CODE) \
|
||||
case CONST_INT: \
|
||||
if (INTVAL (RTX) >= -16 && INTVAL (RTX) <= 63) return 0; \
|
||||
if (INTVAL (RTX) >= -128 && INTVAL (RTX) <= 127) return 1; \
|
||||
if (INTVAL (RTX) >= -32768 && INTVAL (RTX) <= 32767) return 2; \
|
||||
case CONST: \
|
||||
case LABEL_REF: \
|
||||
case SYMBOL_REF: \
|
||||
return 3; \
|
||||
case CONST_DOUBLE: \
|
||||
return 5;
|
||||
|
||||
/* Tell final.c how to eliminate redundant test instructions. */
|
||||
|
Loading…
Reference in New Issue
Block a user