diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f32a14bd156..5233ce39abd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-01 Paul Brook + + * 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 PR tree-opt/17343 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index a8934c3e475..193e6e1224a 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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);