Update documentation for builtin_setjmp related patterns.

From-SVN: r18029
This commit is contained in:
Richard Henderson 1998-02-16 09:19:13 -08:00
parent ecf0ad276b
commit c30ddbc9da

View File

@ -2462,8 +2462,10 @@ This pattern, if defined, contains code needed at the target of a
nonlocal goto after the code already generated by GNU CC. You will not
normally need to define this pattern. A typical reason why you might
need this pattern is if some value, such as a pointer to a global table,
must be restored when the frame pointer is restored. There are no
arguments.
must be restored when the frame pointer is restored. Note that a nonlocal
goto only ocurrs within a unit-of-translation, so a global table pointer
that is shared by all functions of a given module need not be restored.
There are no arguments.
@cindex @code{exception_receiver} instruction pattern
@item @samp{exception_receiver}
@ -2474,14 +2476,33 @@ might need this pattern is if some value, such as a pointer to a global
table, must be restored after control flow is branched to the handler of
an exception. There are no arguments.
@cindex @code{builtin_setjmp_setup} instruction pattern
@item @samp{builtin_setjmp_setup}
This pattern, if defined, contains additional code needed to initialize
the @code{jmp_buf}. You will not normally need to define this pattern.
A typical reason why you might need this pattern is if some value, such
as a pointer to a global table, must be restored. Though it is
preferred that the pointer value be recalculated if possible (given the
address of a label for instance). The single argument is a pointer to
the @code{jmp_buf}. Note that the buffer is five words long and that
the first three are normally used by the generic mechanism.
@cindex @code{builtin_setjmp_receiver} instruction pattern
@item @samp{builtin_setjmp_receiver}
This pattern, if defined, contains code needed at the site of an
builtin setjmp that isn't needed at the site of a nonlocal goto. You
will not normally need to define this pattern. A typical reason why you
might need this pattern is if some value, such as a pointer to a global
table, must be restored. This pattern is called immediate after the
call to @code{__dummy} has been emitted. There are no arguments.
table, must be restored. It takes one argument, which is the label
to which builtin_longjmp transfered control; this pattern may be emitted
at a small offset from that label.
@cindex @code{builtin_longjmp} instruction pattern
@item @samp{builtin_longjmp}
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}.
@end table
@node Pattern Ordering