diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-02-18 21:48:19 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-02-18 21:48:19 -0800 |
commit | 8188bbbc9408322c18cdc2d1049126900abf793c (patch) | |
tree | 2141b32bc1b7df6106980e12f0edbacc7dcfd329 /subx/062write-stream.subx | |
parent | 6607a30415e2bede27c43b57ce3c5cbc42278fa9 (diff) | |
download | mu-8188bbbc9408322c18cdc2d1049126900abf793c.tar.gz |
4981 - no, go back to 3 phases
Considering how much trouble a merge phase would be (commit 4978), it seems simpler to just add the extra syntax for controlling the entry point of the generated ELF binary. But I wouldn't have noticed this if I hadn't taken the time to write out the commit messages of 4976 and 4978. Even if we happened to already have linked list primitives built, this may still be a good idea considering that I'm saving quite a lot of code in duplicated entrypoints.
Diffstat (limited to 'subx/062write-stream.subx')
-rw-r--r-- | subx/062write-stream.subx | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/subx/062write-stream.subx b/subx/062write-stream.subx index b273336b..73766fe3 100644 --- a/subx/062write-stream.subx +++ b/subx/062write-stream.subx @@ -5,19 +5,15 @@ # . op subop mod rm32 base index scale r32 # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes -# main: - # manual test +#? Entry: # manual test #? # write-stream(stdout, _test-stream2) #? 68/push _test-stream2/imm32 #? 68/push 1/imm32/stdout #? e8/call write-stream/disp32 - # automatic test -#? e8/call test-write-stream-single/disp32 - e8/call run-tests/disp32 # 'run-tests' is a function created automatically by SubX. It calls all functions that start with 'test-'. - # syscall(exit, Num-test-failures) - 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX - b8/copy-to-EAX 1/imm32/exit - cd/syscall 0x80/imm8 +#? # syscall(exit, Num-test-failures) +#? 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX +#? b8/copy-to-EAX 1/imm32/exit +#? cd/syscall 0x80/imm8 write-stream: # f : fd or (address stream), s : (address stream) -> <void> # . prolog |