arm.c (thumb_compute_saved_rag_mask): Or with bitmask, not register number.
authorPaul Brook <paul@codesourcery.com>
Fri, 1 Oct 2004 15:55:21 +0000 (15:55 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Fri, 1 Oct 2004 15:55:21 +0000 (15:55 +0000)
* config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
not register number.
(thumb_find_work_register): Search full register range.

From-SVN: r88399

gcc/ChangeLog
gcc/config/arm/arm.c

index f32a14b..5233ce3 100644 (file)
@@ -1,3 +1,9 @@
+2004-01-01  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
+       not register number.
+       (thumb_find_work_register): Search full register range.
+
 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR tree-opt/17343
index a8934c3..193e6e1 100644 (file)
@@ -3018,7 +3018,7 @@ thumb_find_work_register (int live_regs_mask)
     return LAST_ARG_REGNUM;
 
   /* Look for a pushed register.  */
-  for (reg = 0; reg < LAST_LO_REGNUM; reg++)
+  for (reg = LAST_LO_REGNUM; reg >=0; reg--)
     if (live_regs_mask & (1 << reg))
       return reg;
 
@@ -8733,7 +8733,7 @@ thumb_compute_save_reg_mask (void)
     }
 
   if (flag_pic && !TARGET_SINGLE_PIC_BASE)
-    mask |= PIC_OFFSET_TABLE_REGNUM;
+    mask |= (1 << PIC_OFFSET_TABLE_REGNUM);
   if (TARGET_SINGLE_PIC_BASE)
     mask &= ~(1 << arm_pic_register);