]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
unwind-ia64.c (alloc_spill_area): Fix offset.
authorRichard Henderson <rth@redhat.com>
Mon, 1 Apr 2002 06:52:45 +0000 (22:52 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 1 Apr 2002 06:52:45 +0000 (22:52 -0800)
* config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
(desc_frgr_mem): Fix reference to f16-f31.

From-SVN: r51679

gcc/ChangeLog
gcc/config/ia64/unwind-ia64.c

index c97fd639c9b7cce40a437e6460135a1b285e96cd..d7bc5947647efc68f682512b8fff3da3c6f296a5 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-31  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
+       (desc_frgr_mem): Fix reference to f16-f31.
+
 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
index 52db9ac6aea966953081ed2266726039e9b05b51..2c1e356ad17d541517fd4fbac96216ef10a10156 100644 (file)
@@ -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;
        }