mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-20 17:49:38 +08:00
sh.c (shiftcosts): Don't get INTVAL before testing whether X is a CONST_INT.
* config/sh/sh.c (shiftcosts): Don't get INTVAL before testing whether X is a CONST_INT. (addsubcosts): Likewise. From-SVN: r37911
This commit is contained in:
parent
b927e8c720
commit
3d422cb195
@ -1,5 +1,9 @@
|
||||
2000-12-01 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
|
||||
whether X is a CONST_INT.
|
||||
(addsubcosts): Likewise.
|
||||
|
||||
* config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
|
||||
mis-used XINT.
|
||||
(ARG_POINTER_REGNUM): Set to AP_REG.
|
||||
|
@ -965,12 +965,14 @@ int
|
||||
shiftcosts (x)
|
||||
rtx x;
|
||||
{
|
||||
int value = INTVAL (XEXP (x, 1));
|
||||
int value;
|
||||
|
||||
/* If shift by a non constant, then this will be expensive. */
|
||||
if (GET_CODE (XEXP (x, 1)) != CONST_INT)
|
||||
return SH_DYNAMIC_SHIFT_COST;
|
||||
|
||||
value = INTVAL (XEXP (x, 1));
|
||||
|
||||
/* Otherwise, return the true cost in instructions. */
|
||||
if (GET_CODE (x) == ASHIFTRT)
|
||||
{
|
||||
@ -1025,7 +1027,8 @@ addsubcosts (x)
|
||||
return 1;
|
||||
|
||||
/* Likewise for small constants. */
|
||||
if (CONST_OK_FOR_I (INTVAL (XEXP (x, 1))))
|
||||
if (GET_CODE (XEXP (x, 1)) == CONST_INT
|
||||
&& CONST_OK_FOR_I (INTVAL (XEXP (x, 1))))
|
||||
return 1;
|
||||
|
||||
/* Any other constant requires a 2 cycle pc-relative load plus an
|
||||
|
Loading…
Reference in New Issue
Block a user