summaryrefslogtreecommitdiff
path: root/gcc/md.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/md.texi')
-rw-r--r--gcc/md.texi32
1 files changed, 15 insertions, 17 deletions
diff --git a/gcc/md.texi b/gcc/md.texi
index 411f67fc754..047f25669a8 100644
--- a/gcc/md.texi
+++ b/gcc/md.texi
@@ -2848,26 +2848,24 @@ 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}
+@cindex @code{eh_return} instruction pattern
+@item @samp{eh_return}
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
+and thence the call frame exception handling library routines, are
+built. It is intended to handle non-trivial actions needed along
+the abnormal return path.
+
+The pattern takes two arguments. The first is an offset to be applied
+to the stack pointer. It will have been copied to some appropriate
+location (typically @code{EH_RETURN_STACKADJ_RTX}) which will survive
+until after reload to when the normal epilogue is generated.
+The second 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.
+pattern to some special register or memory location.
-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.
+This pattern only needs to be defined if call frame exception handling
+is to be used, and simple moves to @code{EH_RETURN_STACKADJ_RTX} and
+@code{EH_RETURN_HANDLER_RTX} are not sufficient.
@cindex @code{prologue} instruction pattern
@item @samp{prologue}