aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ia64
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-03-31 22:52:45 -0800
committerRichard Henderson <rth@gcc.gnu.org>2002-03-31 22:52:45 -0800
commit1d9ad0e01abe21fd3a4451471ed0eeeea40b9567 (patch)
treeb23b08b95def63537011bd153dc8e3266c1bbb03 /gcc/config/ia64
parentd875078437f3e2a604d702281b742b591bfbe7d0 (diff)
downloadgcc-1d9ad0e01abe21fd3a4451471ed0eeeea40b9567.zip
gcc-1d9ad0e01abe21fd3a4451471ed0eeeea40b9567.tar.gz
gcc-1d9ad0e01abe21fd3a4451471ed0eeeea40b9567.tar.bz2
unwind-ia64.c (alloc_spill_area): Fix offset.
* config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset. (desc_frgr_mem): Fix reference to f16-f31. From-SVN: r51679
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r--gcc/config/ia64/unwind-ia64.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index 52db9ac..2c1e356 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -342,8 +342,8 @@ alloc_spill_area (unsigned long *offp, unsigned long regsize,
if (reg->where == UNW_WHERE_SPILL_HOME)
{
reg->where = UNW_WHERE_PSPREL;
- reg->val = 0x10 - *offp;
- *offp += regsize;
+ *offp -= regsize;
+ reg->val = *offp;
}
}
}
@@ -541,7 +541,8 @@ desc_frgr_mem (unsigned char grmask, unw_word frmask,
{
if ((frmask & 1) != 0)
{
- set_reg (sr->curr.reg + UNW_REG_F2 + i, UNW_WHERE_SPILL_HOME,
+ enum unw_register_index base = i < 4 ? UNW_REG_F2 : UNW_REG_F16 - 4;
+ set_reg (sr->curr.reg + base + i, UNW_WHERE_SPILL_HOME,
sr->region_start + sr->region_len - 1, 0);
sr->any_spills = 1;
}