diff options
author | Richard Henderson <rth@gcc.gnu.org> | 1998-10-13 19:03:03 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-10-13 19:03:03 -0700 |
commit | f69864aab56bd998a4b5cb51332ce0ac779abc66 (patch) | |
tree | 46c4ab3f2a67bf1f29627d706ce053ec1109ac8b /gcc | |
parent | 18a90182e3204fe9418addfd3824d7ca68007128 (diff) | |
download | gcc-f69864aab56bd998a4b5cb51332ce0ac779abc66.zip gcc-f69864aab56bd998a4b5cb51332ce0ac779abc66.tar.gz gcc-f69864aab56bd998a4b5cb51332ce0ac779abc66.tar.bz2 |
Document eh_epilogue.
From-SVN: r23076
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/md.texi | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/md.texi b/gcc/md.texi index e989259..f3f6cd6 100644 --- a/gcc/md.texi +++ b/gcc/md.texi @@ -2531,6 +2531,27 @@ This pattern, if defined, performs the entire action of the longjmp. You will not normally need to define this pattern unless you also define @code{builtin_setjmp_setup}. The single argument is a pointer to the @code{jmp_buf}. + +@cindex @code{eh_epilogue} instruction pattern +@item @samp{eh_epilogue} +This pattern, if defined, affects the way @code{__builtin_eh_return}, +and thence @code{__throw} are built. It is intended to allow communication +between the exception handling machinery and the normal epilogue code +for the target. + +The pattern takes three arguments. The first is the exception context +pointer. This will have already been copied to the function return +register appropriate for a pointer; normally this can be ignored. The +second argument is an offset to be added to the stack pointer. It will +have been copied to some arbitrary call-clobbered hard reg so that it +will survive until after reload to when the normal epilogue is generated. +The final argument is the address of the exception handler to which +the function should return. This will normally need to copied by the +pattern to some special register. + +This pattern must be defined if @code{RETURN_ADDR_RTX} does not yield +something that can be reliably and permanently modified, i.e. a fixed +hard register or a stack memory reference. @end table @node Pattern Ordering |