aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-12-31 16:23:22 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-12-31 16:23:22 -0800
commitf95e79cc11bd75adb2847b95d575a4f7fd3e14c8 (patch)
tree7f2302edb896741db2adc6a2acc35ff01488fdfa
parenta4219437e2e21139d55c45600f6a836d1d315eae (diff)
downloadgcc-f95e79cc11bd75adb2847b95d575a4f7fd3e14c8.zip
gcc-f95e79cc11bd75adb2847b95d575a4f7fd3e14c8.tar.gz
gcc-f95e79cc11bd75adb2847b95d575a4f7fd3e14c8.tar.bz2
* config/ia64/ia64.c (mark_reg_gr_used_mask): Mind HARD_REGNO_NREGS.
From-SVN: r48437
-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