From: Richard Henderson Date: Wed, 14 Oct 1998 02:03:03 +0000 (-0700) Subject: Document eh_epilogue. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f69864aab56bd998a4b5cb51332ce0ac779abc66;p=gcc.git Document eh_epilogue. From-SVN: r23076 --- diff --git a/gcc/md.texi b/gcc/md.texi index e9892593ab3..f3f6cd6a3aa 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