diff options
author | Richard Henderson <rth@redhat.com> | 2003-09-30 23:01:47 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-09-30 23:01:47 -0700 |
commit | ed80cd6809e600cf021fc66cbc1d5fa5c682cab7 (patch) | |
tree | 20abd603a5bcb42f4ffe7929126e0ebc032fc438 /gcc/dwarf2out.c | |
parent | 6ab7003d15f074b44f4a521a7ac46b9759492f86 (diff) | |
download | gcc-ed80cd6809e600cf021fc66cbc1d5fa5c682cab7.zip gcc-ed80cd6809e600cf021fc66cbc1d5fa5c682cab7.tar.gz gcc-ed80cd6809e600cf021fc66cbc1d5fa5c682cab7.tar.bz2 |
dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor DWARF_ALT_FRAME_RETURN_COLUMN.
* 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.
From-SVN: r71967
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index f22ca50..9a23c76 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)); } |