config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up formatting.
Add check to PLUS case to ensure that the offset is within an acceptable range. config/v850/v850.md (casesi): Disable the generation of the switch pattern as it is not being handled properly at the moment. From-SVN: r104736
This commit is contained in:
parent
9f4a5c9a63
commit
7d866c52c5
|
@ -1,5 +1,12 @@
|
|||
2005-09-28 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
|
||||
formatting. Add check to PLUS case to ensure that the offset is
|
||||
within an acceptable range.
|
||||
|
||||
* config/v850/v850.md (casesi): Disable the generation of the
|
||||
switch pattern as it is not being handled properly at the moment.
|
||||
|
||||
* config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
|
||||
for when the high words are identical.
|
||||
|
||||
|
|
|
@ -797,13 +797,14 @@ struct cum_arg { int nbytes; int anonymous_args; };
|
|||
|
||||
#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
|
||||
do { \
|
||||
if (RTX_OK_FOR_BASE_P (X)) goto ADDR; \
|
||||
if (RTX_OK_FOR_BASE_P (X)) \
|
||||
goto ADDR; \
|
||||
if (CONSTANT_ADDRESS_P (X) \
|
||||
&& (MODE == QImode || INTVAL (X) % 2 == 0) \
|
||||
&& (GET_MODE_SIZE (MODE) <= 4 || INTVAL (X) % 4 == 0)) \
|
||||
goto ADDR; \
|
||||
if (GET_CODE (X) == LO_SUM \
|
||||
&& GET_CODE (XEXP (X, 0)) == REG \
|
||||
&& REG_P (XEXP (X, 0)) \
|
||||
&& REG_OK_FOR_BASE_P (XEXP (X, 0)) \
|
||||
&& CONSTANT_P (XEXP (X, 1)) \
|
||||
&& (GET_CODE (XEXP (X, 1)) != CONST_INT \
|
||||
|
@ -815,9 +816,12 @@ do { \
|
|||
&& (GET_MODE_SIZE (MODE) <= GET_MODE_SIZE (word_mode))) \
|
||||
goto ADDR; \
|
||||
if (GET_CODE (X) == PLUS \
|
||||
&& RTX_OK_FOR_BASE_P (XEXP (X, 0)) \
|
||||
&& CONSTANT_ADDRESS_P (XEXP (X, 1)) \
|
||||
&& (MODE == QImode || INTVAL (XEXP (X, 1)) % 2 == 0) \
|
||||
&& RTX_OK_FOR_BASE_P (XEXP (X, 0))) goto ADDR; \
|
||||
&& ((MODE == QImode || INTVAL (XEXP (X, 1)) % 2 == 0) \
|
||||
&& CONST_OK_FOR_K (INTVAL (XEXP (X, 1)) \
|
||||
+ (GET_MODE_NUNITS (MODE) * UNITS_PER_WORD)))) \
|
||||
goto ADDR; \
|
||||
} while (0)
|
||||
|
||||
|
||||
|
|
|
@ -1309,7 +1309,9 @@
|
|||
/* Branch to the default label if out of range of the table. */
|
||||
emit_jump_insn (gen_bgtu (operands[4]));
|
||||
|
||||
if (! TARGET_BIG_SWITCH && TARGET_V850E)
|
||||
/* Disabled because the switch pattern is not being recognised
|
||||
properly at the moment. eg. compiling vfscanf.c in newlib. */
|
||||
if (0 && ! TARGET_BIG_SWITCH && TARGET_V850E)
|
||||
{
|
||||
emit_jump_insn (gen_switch (reg, operands[3]));
|
||||
DONE;
|
||||
|
|
Loading…
Reference in New Issue