diff options
author | Jakub Jelinek <jakub@redhat.com> | 2003-05-16 15:25:16 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2003-05-16 15:25:16 +0200 |
commit | b80c098742ddeec767edaa0aa635e1c9bb9ad21e (patch) | |
tree | ed5d012f914315f12fecf5d42d0b49e6d78d6eb9 /gcc/config/ia64 | |
parent | 18abc5e1d935e6c2416bb31d7625a5192d01e6f8 (diff) | |
download | gcc-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.c | 10 |
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; |