arm.c (arm_legitimize_address): Limit the value passed to bit_count to 32 bits.

* config/arm/arm.c (arm_legitimize_address): Limit the value passed
to bit_count to 32 bits.

From-SVN: r103792
This commit is contained in:
Nicolas Pitre 2005-09-02 19:09:33 +00:00 committed by Nicolas Pitre
parent da6110588f
commit b107d7437b
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-09-02 Nicolas Pitre <nico@cam.org>
* config/arm/arm.c (arm_legitimize_address): Limit the value passed
to bit_count to 32 bits.
2005-08-31 Mark Mitchell <mark@codesourcery.com>
PR c++/23167

View File

@ -3772,7 +3772,7 @@ arm_legitimize_address (rtx x, rtx orig_x, enum machine_mode mode)
mask = (1 << bits) - 1;
base = INTVAL (x) & ~mask;
index = INTVAL (x) & mask;
if (bit_count (base) > (32 - bits)/2)
if (bit_count (base & 0xffffffff) > (32 - bits)/2)
{
/* It'll most probably be more efficient to generate the base
with more bits set and use a negative index instead. */