From 4c527b3e9a31f46b2f20f24b93b7feac4c76c6d6 Mon Sep 17 00:00:00 2001 From: nico Date: Fri, 2 Sep 2005 19:09:33 +0000 Subject: [PATCH] * config/arm/arm.c (arm_legitimize_address): Limit the value passed to bit_count to 32 bits. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103792 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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. */ -- 2.7.4