diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5253f24..7502386 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2001-12-31 Richard Henderson <rth@redhat.com> + * config/ia64/ia64.c (mark_reg_gr_used_mask): Mind HARD_REGNO_NREGS. + +2001-12-31 Richard Henderson <rth@redhat.com> + * regrename.c (build_def_use): Don't rename asm operands that were originally hard registers. (copyprop_hardreg_forward_1): Likewise. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 133a267..afe3006 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -1377,7 +1377,11 @@ mark_reg_gr_used_mask (reg, data) { unsigned int regno = REGNO (reg); if (regno < 32) - current_frame_info.gr_used_mask |= 1 << regno; + { + unsigned int i, n = HARD_REGNO_NREGS (regno, GET_MODE (reg)); + for (i = 0; i < n; ++i) + current_frame_info.gr_used_mask |= 1 << (regno + i); + } } /* Returns the number of bytes offset between the frame pointer and the stack |