mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-27 05:30:23 +02:00
Correct description of the jmpi instruction.
* doc/body.texi: Correct "jmpi" description that incorrectly told it was possible to pass any address as jump target. The only way to do that is "movi+jmpr".
This commit is contained in:
parent
7c7908c97e
commit
708cca9465
3 changed files with 24 additions and 11 deletions
|
@ -488,7 +488,8 @@ callr (not specified) @r{function call to a register}
|
|||
calli (not specified) @r{function call to O1}
|
||||
finishr (not specified) @r{function call to a register}
|
||||
finishi (not specified) @r{function call to O1}
|
||||
jmpi/jmpr (not specified) @r{unconditional jump to O1}
|
||||
jmpr (not specified) @r{unconditional jump to register}
|
||||
jmpi (not specified) @r{unconditional jump}
|
||||
ret (not specified) @r{return from subroutine}
|
||||
retr _c _uc _s _us _i _ui _l _f _d
|
||||
reti _c _uc _s _us _i _ui _l _f _d
|
||||
|
@ -1067,11 +1068,11 @@ a pointer to a C function. Note that conditional branches do not
|
|||
receive a label argument, so they must be patched.
|
||||
|
||||
You need to call @code{patch_at} on the return of value @code{calli},
|
||||
@code{finishi}, @code{jmpi} and @code{calli} if it is actually
|
||||
referencing a label in the jit code. All other branch instructions
|
||||
do not receive a label argument. Note that @code{movi} is an special
|
||||
case, and patching it is usually done to get the final address of
|
||||
a label, usually to later call @code{jmpr}.
|
||||
@code{finishi}, and @code{calli} if it is actually referencing a label
|
||||
in the jit code. All branch instructions do not receive a label
|
||||
argument. Note that @code{movi} is an special case, and patching it
|
||||
is usually done to get the final address of a label, usually to later
|
||||
call @code{jmpr}.
|
||||
|
||||
Now, here is the iterative version:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue