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 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 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, 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 must be restored when the frame pointer is restored. Note that a nonlocal
arguments. 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 @cindex @code{exception_receiver} instruction pattern
@item @samp{exception_receiver} @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 table, must be restored after control flow is branched to the handler of
an exception. There are no arguments. 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 @cindex @code{builtin_setjmp_receiver} instruction pattern
@item @samp{builtin_setjmp_receiver} @item @samp{builtin_setjmp_receiver}
This pattern, if defined, contains code needed at the site of an 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 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 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 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 table, must be restored. It takes one argument, which is the label
call to @code{__dummy} has been emitted. There are no arguments. 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 @end table
@node Pattern Ordering @node Pattern Ordering