arm.c (arm_rtx_costs_1): Treat a minus with a shift the same as a minus without a shift.
* config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift the same as a minus without a shift. From-SVN: r146055
This commit is contained in:
parent
f9b20c620a
commit
b32f6fffc9
@ -1,3 +1,8 @@
|
||||
2009-04-14 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
|
||||
the same as a minus without a shift.
|
||||
|
||||
2009-04-14 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
|
||||
|
@ -5139,6 +5139,17 @@ arm_rtx_costs_1 (rtx x, enum rtx_code outer, int* total, bool speed)
|
||||
return true;
|
||||
}
|
||||
|
||||
/* A shift as a part of RSB costs no more than RSB itself. */
|
||||
if (GET_CODE (XEXP (x, 0)) == MULT
|
||||
&& GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
|
||||
&& ((INTVAL (XEXP (XEXP (x, 0), 1))
|
||||
& (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0))
|
||||
{
|
||||
*total += rtx_cost (XEXP (XEXP (x, 0), 0), code, speed);
|
||||
*total += rtx_cost (XEXP (x, 1), code, speed);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (subcode == MULT
|
||||
&& GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT
|
||||
&& ((INTVAL (XEXP (XEXP (x, 1), 1)) &
|
||||
|
Loading…
Reference in New Issue
Block a user