diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2003-05-10 22:59:04 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2003-05-10 22:59:04 +0000 |
commit | 34dc173c2c848264901401da687c6edea165b7c9 (patch) | |
tree | 576cc3eb0bc73f866abed200b78ada8bb9e6cdc2 /gcc/doc/tm.texi | |
parent | a64d0bc69ea6a927a0a16d71681b00099e285d1e (diff) | |
download | gcc-34dc173c2c848264901401da687c6edea165b7c9.zip gcc-34dc173c2c848264901401da687c6edea165b7c9.tar.gz gcc-34dc173c2c848264901401da687c6edea165b7c9.tar.bz2 |
except.c (EH_RETURN_STACKADJ_RTX): Do not define.
* except.c (EH_RETURN_STACKADJ_RTX): Do not define.
(EH_RETURN_HANDLER_RTX): Likewise.
(expand_builtin_eh_return): Do not copy stack adjustment
if EH_RETURN_STACKADJ_RTX is not defined.
(expand_eh_return): Likewise. Also, do not pass stack
adjustment as argument to the eh_return pattern.
* except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
because EH_RETURN_STACKADJ_RTX is not defined.
* unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
is not defined, treat stack pointer like a regular register.
(uw_init_context_1): Set up fake initial stack pointer register.
(uw_install_context_1): Do not compute stack adjustment if
EH_RETURN_STACKADJ_RTX is not defined.
* config/i386/i386.md ("eh_return"): Remove first argument.
* config/mips/mips.md ("eh_return"): Likewise.
* config/rs6000/rs6000.md ("eh_return"): Likewise.
* config/sh/sh.md ("eh_return"): Likewise.
* config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
From-SVN: r66672
Diffstat (limited to 'gcc/doc/tm.texi')
-rw-r--r-- | gcc/doc/tm.texi | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index c932422..c7c65a5 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -3016,8 +3016,12 @@ It will be assigned zero on code paths that return normally. Typically this is a call-clobbered hard register that is otherwise untouched by the epilogue, but could also be a stack slot. -You must define this macro if you want to support call frame exception -handling like that provided by DWARF 2. +Do not define this macro if the stack pointer is saved and restored +by the regular prolog and epilog code in the call frame itself; in +this case, the exception handling library routines will update the +stack location to be restored in place. Otherwise, you must define +this macro if you want to support call frame exception handling like +that provided by DWARF 2. @findex EH_RETURN_HANDLER_RTX @item EH_RETURN_HANDLER_RTX @@ -3029,8 +3033,9 @@ Typically this is the location in the call frame at which the normal return address is stored. For targets that return by popping an address off the stack, this might be a memory address just below the @emph{target} call frame rather than inside the current call -frame. @code{EH_RETURN_STACKADJ_RTX} will have already been assigned, -so it may be used to calculate the location of the target call frame. +frame. If defined, @code{EH_RETURN_STACKADJ_RTX} will have already +been assigned, so it may be used to calculate the location of the +target call frame. Some targets have more complex requirements than storing to an address calculable during initial code generation. In that case |