diff options
Diffstat (limited to 'evoke.e')
| -rw-r--r-- | evoke.e | 55 |
1 files changed, 13 insertions, 42 deletions
diff --git a/evoke.e b/evoke.e index 86e79c8..c1ee096 100644 --- a/evoke.e +++ b/evoke.e @@ -1,46 +1,16 @@ -~ cat labels.e elf.e execution.e transform.e evoke.e \ +~ (cat labels.e elf.e execution.e transform.e; \ +~ echo 65536 read-to-buffer; \ +~ cat core.e; \ +~ echo pyrzqxgl; \ +~ cat evoke.e) \ ~ | ./quine > evoke && chmod 755 evoke && ./evoke -1024 read-to-buffer -~ Any word that ends with a normal semicolon will require this, so its -~ definition has to be near the start. -: exit - [ here @ - :rsi pack-popcontrol - here ! ] ;asm - -: lit - [ here @ - lods64 - :rax push-reg64 - here ! ] ;asm - -: sys-exit - [ here @ - 60 :rax mov-reg64-imm64 - :rdi pop-reg64 - syscall - hlt - here ! ] ;asm - -: happy-path 42 sys-exit ; - -~ : lods64 ; -~ : :rax ; -~ : push-reg64 ; -~ : mov-reg64-imm64 ; -~ : :rdi ; -~ : pop-reg64 ; -~ : syscall ; -~ : hlt ; -~ : here ; -~ : @ ; -~ : ! ; -~ : [ ; -~ : ] ; +s" source-to-precompile" variable +1024 read-to-buffer +: foo 4 . ; pyrzqxgl -s" source-to-precompile" variable +s" source-to-heap-copy" variable ~ (output memory start, current output point ~ -- output memory start, current output point) @@ -54,10 +24,11 @@ s" source-to-precompile" variable 0x08000000 L!' origin elf-file-header elf-program-header - cold-start - warm-start + output-cold-start + source-to-heap-copy output-warm-start output-docol - source-to-precompile transform + output-exit + source-to-precompile label-transform 0 L!' final-word-name current-offset L!' total-size 0 L!' : |