diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-30 08:21:27 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-30 08:21:27 +0000 |
commit | 223e8e29888f72b85b73b9c059f07d0f16f0b795 (patch) | |
tree | b68f70cabfd53a484ae0dea743781e11afb3cfd7 /gcc/config/alpha | |
parent | 784bf0a0896463245b1887df6ce4292048cca452 (diff) | |
download | gcc-223e8e29888f72b85b73b9c059f07d0f16f0b795.tar.gz |
* unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
* doc/tm.texi (DWARF_ZERO_REG): New.
* config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
* config/alpha/alpha.h (DWARF_ZERO_REG): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88331 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r-- | gcc/config/alpha/alpha.c | 16 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.h | 1 |
2 files changed, 1 insertions, 16 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 114170b8b47..b1de390bc53 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -5924,11 +5924,6 @@ alpha_sa_mask (unsigned long *imaskP, unsigned long *fmaskP) break; imask |= 1UL << regno; } - - /* Glibc likes to use $31 as an unwind stopper for crt0. To - avoid hackery in unwind-dw2.c, we need to actively store a - zero in the prologue of _Unwind_RaiseException et al. */ - imask |= 1UL << 31; } /* If any register spilled, then spill the return address also. */ @@ -6451,14 +6446,6 @@ alpha_expand_prologue (void) reg_offset += 8; } - /* Store a zero if requested for unwinding. */ - if (imask & (1UL << 31)) - { - emit_frame_store_1 (const0_rtx, sa_reg, sa_bias, reg_offset, - gen_rtx_REG (Pmode, 31)); - reg_offset += 8; - } - for (i = 0; i < 31; i++) if (fmask & (1UL << i)) { @@ -6876,9 +6863,6 @@ alpha_expand_epilogue (void) reg_offset += 8; } - if (imask & (1UL << 31)) - reg_offset += 8; - for (i = 0; i < 31; ++i) if (fmask & (1UL << i)) { diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index 35d6f4ac3a1..fe3cedcb520 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -1183,6 +1183,7 @@ do { \ #define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, 26) #define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (26) #define DWARF_ALT_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (64) +#define DWARF_ZERO_REG 31 /* Describe how we implement __builtin_eh_return. */ #define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N) + 16 : INVALID_REGNUM) |