Update documentation for builtin_setjmp related patterns.
From-SVN: r18029
This commit is contained in:
parent
ecf0ad276b
commit
c30ddbc9da
29
gcc/md.texi
29
gcc/md.texi
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user