summaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-01 06:01:47 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-01 06:01:47 +0000
commitc49ad9ef92ccbf9ca427e3cd0e359f42fd11a809 (patch)
tree20abd603a5bcb42f4ffe7929126e0ebc032fc438 /gcc/dwarf2out.c
parent853f6a41c245ec7ae212fce1223b05c69f1717bc (diff)
downloadgcc-c49ad9ef92ccbf9ca427e3cd0e359f42fd11a809.tar.gz
* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor
DWARF_ALT_FRAME_RETURN_COLUMN. * unwind-dw2.c (dwarf_reg_size_table): Expand by one. (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column. (uw_frame_state_for): Return end-of-stack for null return address. * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add. * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return. (alpha_expand_prologue): Store a zero for it. (alpha_expand_epilogue): Don't reload it. * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New. * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64 for the sigframe return address. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71967 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index f22ca5045fd..9a23c76b79e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -482,10 +482,20 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size));
}
+
+#ifdef DWARF_ALT_FRAME_RETURN_COLUMN
+ if (! wrote_return_column)
+ abort ();
+ i = DWARF_ALT_FRAME_RETURN_COLUMN;
+ wrote_return_column = false;
+#else
+ i = DWARF_FRAME_RETURN_COLUMN;
+#endif
+
if (! wrote_return_column)
{
enum machine_mode save_mode = Pmode;
- HOST_WIDE_INT offset = DWARF_FRAME_RETURN_COLUMN * GET_MODE_SIZE (mode);
+ HOST_WIDE_INT offset = i * GET_MODE_SIZE (mode);
HOST_WIDE_INT size = GET_MODE_SIZE (save_mode);
emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size));
}