aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ia64
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-05-16 15:25:16 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2003-05-16 15:25:16 +0200
commitb80c098742ddeec767edaa0aa635e1c9bb9ad21e (patch)
treeed5d012f914315f12fecf5d42d0b49e6d78d6eb9 /gcc/config/ia64
parent18abc5e1d935e6c2416bb31d7625a5192d01e6f8 (diff)
downloadgcc-b80c098742ddeec767edaa0aa635e1c9bb9ad21e.zip
gcc-b80c098742ddeec767edaa0aa635e1c9bb9ad21e.tar.gz
gcc-b80c098742ddeec767edaa0aa635e1c9bb9ad21e.tar.bz2
unwind-ia64.c (uw_update_reg_address): Handle .save XX, r0.
* config/ia64/unwind-ia64.c (uw_update_reg_address): Handle .save XX, r0. From-SVN: r66861
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r--gcc/config/ia64/unwind-ia64.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index dbaaf42..573a84a 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -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;