diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c7dccbd65b2..50ac07f45ad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-09-02 Nicolas Pitre + + * config/arm/arm.c (arm_legitimize_address): Limit the value passed + to bit_count to 32 bits. + 2005-08-31 Mark Mitchell PR c++/23167 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 128edb699e2..7df3aba1c23 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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. */