Document eh_epilogue.
authorRichard Henderson <rth@gcc.gnu.org>
Wed, 14 Oct 1998 02:03:03 +0000 (19:03 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 14 Oct 1998 02:03:03 +0000 (19:03 -0700)
From-SVN: r23076

gcc/md.texi

index e9892593ab368d12481a0b7cb12cd8319f82fc93..f3f6cd6a3aae50d65bbfef8171858993f1aa3da7 100644 (file)
@@ -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