From 03c6f1d3858ff0fdb6af6ce4b61bea51f16b33be Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sat, 2 Feb 2019 22:05:11 -0800 Subject: [PATCH] 4949 --- subx/055stream.subx | 61 ++++++++++++++++++ subx/{055trace.subx => 056trace.subx} | 3 +- subx/{056write.subx => 057write.subx} | 38 ----------- subx/{057stop.subx => 058stop.subx} | 0 subx/{058read.subx => 059read.subx} | 0 subx/{059read-byte.subx => 060read-byte.subx} | 0 ...write-stream.subx => 061write-stream.subx} | 0 subx/{061error.subx => 062error.subx} | 0 ...{062write-byte.subx => 063write-byte.subx} | 0 subx/{063hex.subx => 064hex.subx} | 0 ...{064print-byte.subx => 065print-byte.subx} | 0 ...e-buffered.subx => 066write-buffered.subx} | 0 ...{066error-byte.subx => 067error-byte.subx} | 0 subx/{067allocate.subx => 068allocate.subx} | 0 ...{068new-stream.subx => 069new-stream.subx} | 2 - subx/{069read-line.subx => 070read-line.subx} | 0 subx/{070slice.subx => 071slice.subx} | 0 ...{071next-token.subx => 072next-token.subx} | 0 subx/apps/crenshaw2-1 | Bin 15531 -> 15549 bytes subx/apps/crenshaw2-1b | Bin 16090 -> 16108 bytes subx/apps/factorial | Bin 14449 -> 14467 bytes subx/apps/handle | Bin 15242 -> 15260 bytes subx/apps/hex | Bin 18510 -> 18528 bytes subx/apps/pack | Bin 17425 -> 17443 bytes 24 files changed, 62 insertions(+), 42 deletions(-) create mode 100644 subx/055stream.subx rename subx/{055trace.subx => 056trace.subx} (99%) rename subx/{056write.subx => 057write.subx} (78%) rename subx/{057stop.subx => 058stop.subx} (100%) rename subx/{058read.subx => 059read.subx} (100%) rename subx/{059read-byte.subx => 060read-byte.subx} (100%) rename subx/{060write-stream.subx => 061write-stream.subx} (100%) rename subx/{061error.subx => 062error.subx} (100%) rename subx/{062write-byte.subx => 063write-byte.subx} (100%) rename subx/{063hex.subx => 064hex.subx} (100%) rename subx/{064print-byte.subx => 065print-byte.subx} (100%) rename subx/{065write-buffered.subx => 066write-buffered.subx} (100%) rename subx/{066error-byte.subx => 067error-byte.subx} (100%) rename subx/{067allocate.subx => 068allocate.subx} (100%) rename subx/{068new-stream.subx => 069new-stream.subx} (98%) rename subx/{069read-line.subx => 070read-line.subx} (100%) rename subx/{070slice.subx => 071slice.subx} (100%) rename subx/{071next-token.subx => 072next-token.subx} (100%) diff --git a/subx/055stream.subx b/subx/055stream.subx new file mode 100644 index 00000000..9711c60a --- /dev/null +++ b/subx/055stream.subx @@ -0,0 +1,61 @@ +# streams: data structure for operating on arrays in a stateful manner +# +# A stream looks like this: +# read : int # index that we've read until +# write : int # index at which writes go +# data : (array byte) # prefixed by length as usual +# +# primitives for operating on streams: +# - clear-stream (clears everything but the data length) +# - stream-equal? (compares stream data with a string; ignores read pointer) +# - rewind-reads (resets read pointer; not yet implemented) + +== code +# instruction effective address register displacement immediate +# . 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: + 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 + +clear-stream: # f : (address stream) -> + # . prolog + 55/push-EBP + 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP + # . save registers + 50/push-EAX + 51/push-ECX + # EAX = f + 8b/copy 1/mod/*+disp8 5/rm32/EBP . . 0/r32/EAX 8/disp8 . # copy *(EBP+8) to EAX + # ECX = f->length + 8b/copy 1/mod/*+disp8 0/rm32/EAX . . . 1/r32/ECX 8/disp8 . # copy *(EAX+8) to ECX + # ECX = &f->data[f->length] + 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/EAX 1/index/ECX . 1/r32/ECX 0xc/disp8 . # copy EAX+ECX+12 to ECX + # f->write = 0 + c7 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm32 # copy to *EAX + # f->read = 0 + c7 0/subop/copy 1/mod/*+disp8 0/rm32/EAX . . . . 4/disp8 0/imm32 # copy to *(EAX+4) + # EAX = f->data + 81 0/subop/add 3/mod/direct 0/rm32/EAX . . . . . 0xc/imm32 # add to EAX + # while (true) +$clear-stream:loop: + # if EAX >= ECX break + 39/compare 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # compare EAX with ECX + 7d/jump-if-greater-or-equal $clear-stream:end/disp8 + # *EAX = 0 + c6 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm8 # copy byte to *EAX + # ++EAX + 40/increment-EAX + eb/jump $clear-stream:loop/disp8 +$clear-stream:end: + # . restore registers + 59/pop-to-ECX + 58/pop-to-EAX + # . epilog + 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . . # copy EBP to ESP + 5d/pop-to-EBP + c3/return diff --git a/subx/055trace.subx b/subx/056trace.subx similarity index 99% rename from subx/055trace.subx rename to subx/056trace.subx index 17ecb29b..3b1a22e5 100644 --- a/subx/055trace.subx +++ b/subx/056trace.subx @@ -1,4 +1,4 @@ -# primitives for emitting traces to a trace stream, and for tests to check the trace stream +# primitives for emitting traces to a 'trace' stream, and for tests to make assertions on its contents # # A trace stream looks like this: # read : int # index that we've read until @@ -11,7 +11,6 @@ # - trace: stream, string # - die: stream (exit(1) if using real trace) # - check-trace-contains: stream, string/line, string/message (scans only from stream's read pointer, prints message to stderr on failure, updates stream's read pointer) -# - rewind-reads: stream (resets read pointer) # - scan-to-next-line: stream (advance read pointer past next newline) # # Traces are very fundamental, so many of the helpers we create here won't be diff --git a/subx/056write.subx b/subx/057write.subx similarity index 78% rename from subx/056write.subx rename to subx/057write.subx index 8f5de6e9..3f2f8a11 100644 --- a/subx/056write.subx +++ b/subx/057write.subx @@ -82,44 +82,6 @@ $write:end: 5d/pop-to-EBP c3/return -clear-stream: # f : (address stream) -> - # . prolog - 55/push-EBP - 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP - # . save registers - 50/push-EAX - 51/push-ECX - # EAX = f - 8b/copy 1/mod/*+disp8 5/rm32/EBP . . 0/r32/EAX 8/disp8 . # copy *(EBP+8) to EAX - # ECX = f->length - 8b/copy 1/mod/*+disp8 0/rm32/EAX . . . 1/r32/ECX 8/disp8 . # copy *(EAX+8) to ECX - # ECX = &f->data[f->length] - 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/EAX 1/index/ECX . 1/r32/ECX 0xc/disp8 . # copy EAX+ECX+12 to ECX - # f->write = 0 - c7 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm32 # copy to *EAX - # f->read = 0 - c7 0/subop/copy 1/mod/*+disp8 0/rm32/EAX . . . . 4/disp8 0/imm32 # copy to *(EAX+4) - # EAX = f->data - 81 0/subop/add 3/mod/direct 0/rm32/EAX . . . . . 0xc/imm32 # add to EAX - # while (true) -$clear-stream:loop: - # if EAX >= ECX break - 39/compare 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # compare EAX with ECX - 7d/jump-if-greater-or-equal $clear-stream:end/disp8 - # *EAX = 0 - c6 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm8 # copy byte to *EAX - # ++EAX - 40/increment-EAX - eb/jump $clear-stream:loop/disp8 -$clear-stream:end: - # . restore registers - 59/pop-to-ECX - 58/pop-to-EAX - # . epilog - 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . . # copy EBP to ESP - 5d/pop-to-EBP - c3/return - test-write-single: # clear-stream(_test-stream) # . . push args diff --git a/subx/057stop.subx b/subx/058stop.subx similarity index 100% rename from subx/057stop.subx rename to subx/058stop.subx diff --git a/subx/058read.subx b/subx/059read.subx similarity index 100% rename from subx/058read.subx rename to subx/059read.subx diff --git a/subx/059read-byte.subx b/subx/060read-byte.subx similarity index 100% rename from subx/059read-byte.subx rename to subx/060read-byte.subx diff --git a/subx/060write-stream.subx b/subx/061write-stream.subx similarity index 100% rename from subx/060write-stream.subx rename to subx/061write-stream.subx diff --git a/subx/061error.subx b/subx/062error.subx similarity index 100% rename from subx/061error.subx rename to subx/062error.subx diff --git a/subx/062write-byte.subx b/subx/063write-byte.subx similarity index 100% rename from subx/062write-byte.subx rename to subx/063write-byte.subx diff --git a/subx/063hex.subx b/subx/064hex.subx similarity index 100% rename from subx/063hex.subx rename to subx/064hex.subx diff --git a/subx/064print-byte.subx b/subx/065print-byte.subx similarity index 100% rename from subx/064print-byte.subx rename to subx/065print-byte.subx diff --git a/subx/065write-buffered.subx b/subx/066write-buffered.subx similarity index 100% rename from subx/065write-buffered.subx rename to subx/066write-buffered.subx diff --git a/subx/066error-byte.subx b/subx/067error-byte.subx similarity index 100% rename from subx/066error-byte.subx rename to subx/067error-byte.subx diff --git a/subx/067allocate.subx b/subx/068allocate.subx similarity index 100% rename from subx/067allocate.subx rename to subx/068allocate.subx diff --git a/subx/068new-stream.subx b/subx/069new-stream.subx similarity index 98% rename from subx/068new-stream.subx rename to subx/069new-stream.subx index 2020229d..e6f2e0cb 100644 --- a/subx/068new-stream.subx +++ b/subx/069new-stream.subx @@ -1,6 +1,4 @@ # Helper to allocate a stream on the heap. -# -# We'll now start gingerly supporting streams containing arbitrary types. == code # instruction effective address register displacement immediate diff --git a/subx/069read-line.subx b/subx/070read-line.subx similarity index 100% rename from subx/069read-line.subx rename to subx/070read-line.subx diff --git a/subx/070slice.subx b/subx/071slice.subx similarity index 100% rename from subx/070slice.subx rename to subx/071slice.subx diff --git a/subx/071next-token.subx b/subx/072next-token.subx similarity index 100% rename from subx/071next-token.subx rename to subx/072next-token.subx diff --git a/subx/apps/crenshaw2-1 b/subx/apps/crenshaw2-1 index 3e694fa1070c78abb952019182ca6a79d35c0a75..082416cf479a3c279244ea3b60944d32e324e414 100755 GIT binary patch literal 15549 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 HKlc9sgwgpA diff --git a/subx/apps/crenshaw2-1b b/subx/apps/crenshaw2-1b index 6e26f2c69f01e41e5a94e8268210d7a2b05c3aa9..f8d52e069f29cee12cd454940cb5ab1d3b21bb70 100755 GIT binary patch literal 16108 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 OwxCVO$yr2(&;LIv3&UXm diff --git a/subx/apps/factorial b/subx/apps/factorial index 52b8787df63841172062f5cc8f9e10a60eef6699..ee7c97823c0620ca733cfa914811783d670d793c 100755 GIT binary patch literal 14467 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

eo0`{$VM@axMTz8<8m~OHuACdc`A^G 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 TP^W2huELm*le>rvKlc9squbz> diff --git a/subx/apps/hex b/subx/apps/hex index 56f7471bd4f524a1a177811468d1f715053f51cb..e67cc1fb76789a1b6704f4c32014607de8389e4c 100755 GIT binary patch literal 18528 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 literal 18510 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