aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>1998-10-13 19:03:03 -0700
committerRichard Henderson <rth@gcc.gnu.org>1998-10-13 19:03:03 -0700
commitf69864aab56bd998a4b5cb51332ce0ac779abc66 (patch)
tree46c4ab3f2a67bf1f29627d706ce053ec1109ac8b /gcc
parent18a90182e3204fe9418addfd3824d7ca68007128 (diff)
downloadgcc-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.texi21
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