diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-16 11:52:55 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-16 11:52:55 +0000 |
commit | 31933f89f9d41a0e5af922951c334cbdb0a99596 (patch) | |
tree | da08a4ceb1400ad593f6a055dc2999c204a77e07 /gcc/unwind-dw2.c | |
parent | 9fbc9c4d2c5f81941cf45da348627967f4852458 (diff) | |
download | gcc-31933f89f9d41a0e5af922951c334cbdb0a99596.tar.gz |
* unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
(uw_update_context_1): Use it.
* config/rs6000/rs6000.c (insn_after_throw): Remove.
(rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location
in parent frame if _Unwind_* called directly instead of through
.plt.
(rs6000_emit_eh_toc_restore): Remove.
(rs6000_emit_prologue): Update stack pointer before doing any saving
if current_function_calls_eh_return. Generate unwind info for $r2.
(rs6000_emit_epilogue): Restore stack pointer after doing all
restoring if current_function_calls_eh_return. Restore $r2.
* config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove.
* config/rs6000/rs6000.md (eh_return): Remove call to
rs6000_emit_eh_toc_restore.
* config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define.
* config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define.
* gcc.dg/cleanup-8.c: New test.
* gcc.dg/cleanup-9.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69450 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unwind-dw2.c')
-rw-r--r-- | gcc/unwind-dw2.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c index eadd88bba5a..3e58be6cb69 100644 --- a/gcc/unwind-dw2.c +++ b/gcc/unwind-dw2.c @@ -54,6 +54,11 @@ #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO) #endif +/* A target can do some update context frobbing. */ +#ifndef MD_FROB_UPDATE_CONTEXT +#define MD_FROB_UPDATE_CONTEXT(CTX, FS) do { } while (0) +#endif + /* This is the register and unwind state for a particular frame. This provides the information necessary to unwind up past a frame and return to its caller. */ @@ -1203,6 +1208,8 @@ uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs) } break; } + + MD_FROB_UPDATE_CONTEXT (context, fs); } /* CONTEXT describes the unwind state for a frame, and FS describes the FDE |