unwind-ia64.c (uw_update_reg_address): Handle .save XX, r0.
authorJakub Jelinek <jakub@redhat.com>
Fri, 16 May 2003 13:25:16 +0000 (15:25 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 16 May 2003 13:25:16 +0000 (15:25 +0200)
* config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
.save XX, r0.

From-SVN: r66861

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

index 7a8beebd9118d98dcaf36f61adba70c69cd43a92..b0f3450d14de39fb6a1be0b3dfd36e2ee0c45ed0 100644 (file)
@@ -1,3 +1,8 @@
+2003-05-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
+       .save XX, r0.
+
 2003-05-15  Roger Sayle  <roger@eyesopen.com>
 
        * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
index dbaaf42dff955f224c0160f8c104986fdf42784d..573a84a75cef404e3e3c0c58fd82803ecf55348b 100644 (file)
@@ -1771,6 +1771,11 @@ uw_update_reg_address (struct _Unwind_Context *context,
        addr = ia64_rse_skip_regs ((unsigned long *) context->bsp, rval - 32);
       else if (rval >= 2)
        addr = context->ireg[rval - 2].loc;
+      else if (rval == 0)
+       {
+         static const unsigned long dummy;
+         addr = (void *) &dummy;
+       }
       else
        abort ();
       break;
@@ -1822,6 +1827,11 @@ uw_update_reg_address (struct _Unwind_Context *context,
            context->ireg[regno - UNW_REG_R2].nat
              = context->ireg[rval - 2].nat;
          }
+       else if (rval == 0)
+         {
+           context->ireg[regno - UNW_REG_R2].nat.type = UNW_NAT_NONE;
+           context->ireg[regno - UNW_REG_R2].nat.off = 0;
+         }
        else
          abort ();
        break;