aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/ia64/ia64.c6
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