diff options
author | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-26 19:31:09 +0000 |
---|---|---|
committer | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-26 19:31:09 +0000 |
commit | ad430e37cc1fcb3c3f23c6d25f8007a05b5035cd (patch) | |
tree | 8ed7134cd00f1eff920b22fc52f01f1b88f67c3c /gcc/config/pa | |
parent | a72f389704535fc5bfb238bd893db00e7aabbf79 (diff) | |
download | gcc-ad430e37cc1fcb3c3f23c6d25f8007a05b5035cd.tar.gz |
* gcc/unwind-dw2.h: Move cfa-related variables into
struct frame_state_reg_info to ensure that the CFA is properly
handled when executing DW_CFA_{remember,restore}_state.
* gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
gcc/config/rs6000/linux-unwind.h,
gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
Modify to use new cfa_* fields.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118068 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/hpux-unwind.h | 18 | ||||
-rw-r--r-- | gcc/config/pa/linux-unwind.h | 6 |
2 files changed, 12 insertions, 12 deletions
diff --git a/gcc/config/pa/hpux-unwind.h b/gcc/config/pa/hpux-unwind.h index d52149889e3..1082a34070d 100644 --- a/gcc/config/pa/hpux-unwind.h +++ b/gcc/config/pa/hpux-unwind.h @@ -147,9 +147,9 @@ pa_fallback_frame_state (struct _Unwind_Context *context, && *(pc + 0) == 0x4bc23fd1 /* ldw -18(sp),rp */ && *(pc + 1) == 0xe840d002)) /* bve,n (rp) */ { - fs->cfa_how = CFA_REG_OFFSET; - fs->cfa_reg = 30; - fs->cfa_offset = 0; + fs->regs.cfa_how = CFA_REG_OFFSET; + fs->regs.cfa_reg = 30; + fs->regs.cfa_offset = 0; fs->retaddr_column = 0; fs->regs.reg[0].how = REG_SAVED_OFFSET; @@ -167,9 +167,9 @@ pa_fallback_frame_state (struct _Unwind_Context *context, && (*(pc + 1) == 0xe840c002 /* bv,n r0(rp) */ || *(pc + 1) == 0xe840d002)) /* bve,n (rp) */ { - fs->cfa_how = CFA_REG_OFFSET; - fs->cfa_reg = 30; - fs->cfa_offset = 0; + fs->regs.cfa_how = CFA_REG_OFFSET; + fs->regs.cfa_reg = 30; + fs->regs.cfa_offset = 0; fs->retaddr_column = 0; fs->regs.reg[0].how = REG_SAVED_OFFSET; @@ -239,9 +239,9 @@ pa_fallback_frame_state (struct _Unwind_Context *context, long new_cfa = GetSSReg (mc, ss_sp); - fs->cfa_how = CFA_REG_OFFSET; - fs->cfa_reg = 30; - fs->cfa_offset = new_cfa - (long) context->cfa; + fs->regs.cfa_how = CFA_REG_OFFSET; + fs->regs.cfa_reg = 30; + fs->regs.cfa_offset = new_cfa - (long) context->cfa; UPDATE_FS_FOR_GR (fs, 1, 1); UPDATE_FS_FOR_GR (fs, 2, 2); diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h index 36b9b382708..467d952efc0 100644 --- a/gcc/config/pa/linux-unwind.h +++ b/gcc/config/pa/linux-unwind.h @@ -111,9 +111,9 @@ pa32_fallback_frame_state (struct _Unwind_Context *context, sc = &frame->uc.uc_mcontext; new_cfa = sc->sc_gr[30]; - fs->cfa_how = CFA_REG_OFFSET; - fs->cfa_reg = 30; - fs->cfa_offset = new_cfa - (long) context->cfa; + fs->regs.cfa_how = CFA_REG_OFFSET; + fs->regs.cfa_reg = 30; + fs->regs.cfa_offset = new_cfa - (long) context->cfa; for (i = 1; i <= 31; i++) { fs->regs.reg[i].how = REG_SAVED_OFFSET; |