OSDN Git Service

* config/arm/arm.c (arm_legitimize_address): Limit the value passed
authornico <nico@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Sep 2005 19:09:33 +0000 (19:09 +0000)
committernico <nico@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Sep 2005 19:09:33 +0000 (19:09 +0000)
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
gcc/config/arm/arm.c

index c7dccbd..50ac07f 100644 (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
index 128edb6..7df3aba 100644 (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. */