From b107d7437b09d209d217b102c40ca45f81bc844b Mon Sep 17 00:00:00 2001 From: Nicolas Pitre Date: Fri, 2 Sep 2005 19:09:33 +0000 Subject: 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 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c7dccbd..50ac07f4 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 128edb6..7df3aba 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. */ -- cgit v1.1