diff options
Diffstat (limited to 'execution-support.e')
| -rw-r--r-- | execution-support.e | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/execution-support.e b/execution-support.e index 05dfe6d..a3d0ca5 100644 --- a/execution-support.e +++ b/execution-support.e @@ -36,6 +36,7 @@ ~ ~ (output point -- output point) : pack-next + ~ : "next" macro ~ Copy the next word's address from *rsi into rax. Increment rsi (as per ~ the DF flag). lods64 @@ -66,6 +67,7 @@ ~ ~ (output point, target address -- output point) : pack-beforenext + ~ : "beforenext" macro ~ Do a permanent transfer of control by setting rax and invoking the ~ codeword. Of course, we could jump to docol ourselves but this will work ~ regardless of what the receiving codeword is. @@ -97,11 +99,13 @@ ~ ~ (output point, source register -- output point) : pack-pushcontrol + ~ : "pushcontrol" macro swap :rbp -8 :rbp lea-reg64-disp8-reg64 swap :rbp 0 mov-disp8-reg64-reg64 ; ~ (output point, target register -- output point) : pack-popcontrol + ~ : "popcontrol" macro :rbp 0 3roll mov-reg64-disp8-reg64 :rbp 8 :rbp lea-reg64-disp8-reg64 ; |