diff options
Diffstat (limited to 'execution.e')
| -rw-r--r-- | execution.e | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/execution.e b/execution.e index 536bcbf..8962578 100644 --- a/execution.e +++ b/execution.e @@ -265,13 +265,15 @@ ~ and the kernel would trust us, but this gives us more options for ~ interoperating with other runtimes. ~ - 9 :rax mov-reg64-imm64 ~ : mmap() - log-requested-address :rdi mov-reg64-imm64 ~ : address (very arbitrary) - log-size :rsi mov-reg64-imm64 ~ : size (one meg) - 0x07 :rdx mov-reg64-imm64 ~ : protection (read+write+exec) - 0x22 :r10 mov-extrareg64-imm64 ~ : flags (private+anonymous) - 0 :r8 mov-extrareg64-imm64 ~ : file descriptor (ignored) - 0 :r9 mov-extrareg64-imm64 ~ : offset (ignored) + 9 :rax mov-reg64-imm64 ~ : mmap() + log-requested-address :rdi mov-reg64-imm64 + ~ : 0 address (very arbitrary) + log-size :rsi mov-reg64-imm64 ~ : size (one meg) + 0x07 :rdx mov-reg64-imm64 + ~ : 0 protection (read+write+exec) + 0x22 :r10 mov-extrareg64-imm64 ~ : flags (private+anonymous) + 0 :r8 mov-extrareg64-imm64 ~ : file descriptor (ignored) + 0 :r9 mov-extrareg64-imm64 ~ : offset (ignored) syscall ~ The return value of the system call is in rax, we'll use it in a sec. @@ -573,7 +575,7 @@ L@' log-load-find-execution-token offset-to-target-address-space pack64 ~ : -8 log-load-find-execution-token #-- (codeword pointer) L@' swap offset-to-target-address-space pack64 - ~ : -8 swap #-- (codewored pointer) + ~ : -8 swap #-- (codeword pointer) ~ : Get rid of that heap pointer on the stack, we're finally done with it! L@' drop offset-to-target-address-space pack64 ~ : -8 drop #-- (codeword pointer) |