version 1.99, 2002/05/28 08:54:27
|
version 1.100, 2002/08/28 17:50:28
|
Line 11749 registers for temporary storage. Unfortu
|
Line 11749 registers for temporary storage. Unfortu
|
is installation-dependent. |
is installation-dependent. |
|
|
In particular, @code{ip} (Forth instruction pointer) and @code{rp} |
In particular, @code{ip} (Forth instruction pointer) and @code{rp} |
(return stack pointer) are in different places in @code{gforth} and |
(return stack pointer) may be in different places in @code{gforth} and |
@code{gforth-fast}. This means that you cannot write a @code{NEXT} |
@code{gforth-fast}, or different installations. This means that you |
routine that works on both versions; so for doing @code{NEXT}, I |
cannot write a @code{NEXT} routine that works reliably on both versions |
recomment jumping to @code{' noop >code-address}, which contains nothing |
or different installations; so for doing @code{NEXT}, I recommend |
but a @code{NEXT}. |
jumping to @code{' noop >code-address}, which contains nothing but a |
|
@code{NEXT}. |
|
|
For general accesses to the inner interpreter's registers, the easiest |
For general accesses to the inner interpreter's registers, the easiest |
solution is to use explicit register declarations (@pxref{Explicit Reg |
solution is to use explicit register declarations (@pxref{Explicit Reg |
Line 11825 registers, and using them later on; then
|
Line 11826 registers, and using them later on; then
|
changed register assignment. The stability of the register assignment |
changed register assignment. The stability of the register assignment |
is usually better if you build Gforth with @code{--enable-force-reg}. |
is usually better if you build Gforth with @code{--enable-force-reg}. |
|
|
In particular, the return stack pointer and the instruction pointer are |
The most common use of these registers is to dispatch to the next word |
in memory in @code{gforth}, and usually in registers in |
(the @code{next} routine). A portable way to do this is to jump to |
@code{gforth-fast}. The most common use of these registers is to |
@code{' noop >code-address} (of course, this is less efficient than |
dispatch to the next word (the @code{next} routine). A portable way to |
integrating the @code{next} code and scheduling it well). |
do this is to jump to @code{' noop >code-address} (of course, this is |
|
less efficient than integrating the @code{next} code and scheduling it |
|
well). |
|
|
|
Another difference between Gforth version is that the top of stack is |
Another difference between Gforth version is that the top of stack is |
kept in memory in @code{gforth} and, on most platforms, in a register in |
kept in memory in @code{gforth} and, on most platforms, in a register in |