From 88cbe04d7e6c14f58278ed288e4871abb3129cb5 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Fri, 19 Jul 2019 23:30:33 -0700 Subject: 5422 Various buffer sizes needed to be grown for ex11. But the next bottleneck is that we need to code-generate run-tests. --- subx/apps/assort | Bin 34142 -> 34142 bytes subx/apps/assort.subx | 46 +++++++++++++++++++++++++++++++++++++++++++--- subx/apps/dquotes | Bin 40495 -> 40495 bytes subx/apps/dquotes.subx | 6 +++--- subx/apps/survey | Bin 42791 -> 42791 bytes subx/apps/survey.subx | 12 ++++++------ 6 files changed, 52 insertions(+), 12 deletions(-) (limited to 'subx/apps') diff --git a/subx/apps/assort b/subx/apps/assort index b8cfbe5c..e9eb52ab 100755 Binary files a/subx/apps/assort and b/subx/apps/assort differ diff --git a/subx/apps/assort.subx b/subx/apps/assort.subx index a71270c5..d2418ce3 100644 --- a/subx/apps/assort.subx +++ b/subx/apps/assort.subx @@ -25,10 +25,10 @@ Entry: # initialize heap - # . Heap = new-segment(64KB) + # . Heap = new-segment(1MB) # . . push args 68/push Heap/imm32 - 68/push 0x10000/imm32/64KB + 68/push 0x100000/imm32/1MB # . . call e8/call new-segment/disp32 # . . discard args @@ -525,6 +525,13 @@ $read-segments:check0: #? e8/call write-stream/disp32 #? # . . discard args #? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # . rewind-stream(line) +#? # . . push args +#? 51/push-ECX +#? # . . call +#? e8/call rewind-stream/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP #? # . write(2/stderr, "$\n") #? # . . push args #? 68/push "$\n"/imm32 @@ -703,6 +710,39 @@ $read-segments:check-for-segment-header: 89/copy 0/mod/indirect 0/rm32/EAX . . . 3/r32/EBX . . # copy EBX to *EAX # fall through $read-segments:regular-line: +#? # dump line {{{ +#? # . write(2/stderr, "regular line: ") +#? # . . push args +#? 68/push "regular line: "/imm32 +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # . rewind-stream(line) +#? # . . push args +#? 51/push-ECX +#? # . . call +#? e8/call rewind-stream/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP +#? # . write-stream(2/stderr, line) +#? # . . push args +#? 51/push-ECX +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write-stream/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # . write(2/stderr, "$\n") +#? # . . push args +#? 68/push "$\n"/imm32 +#? 68/push 2/imm32/stderr +#? # . . call +#? e8/call write/disp32 +#? # . . discard args +#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP +#? # }}} # rewind-stream(line) # . . push args 51/push-ECX @@ -799,6 +839,6 @@ $write-segments:end: == data Segment-size: - 0x1000/imm32/4KB + 0x8000/imm32/4KB # . . vim:nowrap:textwidth=0 diff --git a/subx/apps/dquotes b/subx/apps/dquotes index 68dac8fc..de36ba12 100755 Binary files a/subx/apps/dquotes and b/subx/apps/dquotes differ diff --git a/subx/apps/dquotes.subx b/subx/apps/dquotes.subx index 85a42f53..c108ade5 100644 --- a/subx/apps/dquotes.subx +++ b/subx/apps/dquotes.subx @@ -21,10 +21,10 @@ Entry: # initialize heap - # . Heap = new-segment(64KB) + # . Heap = new-segment(1MB) # . . push args 68/push Heap/imm32 - 68/push 0x10000/imm32/64KB + 68/push 0x100000/imm32/1MB # . . call e8/call new-segment/disp32 # . . discard args @@ -2639,7 +2639,7 @@ test-string-length-at-start-of-slice-escaped: == data Segment-size: - 0x1000/imm32/4KB + 0x8000/imm32/32KB Next-string-literal: # tracks the next auto-generated variable name 1/imm32 diff --git a/subx/apps/survey b/subx/apps/survey index b7bd7dd3..4b258446 100755 Binary files a/subx/apps/survey and b/subx/apps/survey differ diff --git a/subx/apps/survey.subx b/subx/apps/survey.subx index 79fddc53..9717944d 100644 --- a/subx/apps/survey.subx +++ b/subx/apps/survey.subx @@ -42,10 +42,10 @@ # . 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 Entry: - # Heap = new-segment(64KB) + # Heap = new-segment(1MB) # . . push args 68/push Heap/imm32 - 68/push 0x10000/imm32/64KB + 68/push 0x100000/imm32/1MB # . . call e8/call new-segment/disp32 # . . discard args @@ -142,9 +142,9 @@ convert: # infile : (address buffered-file), out : (address buffered-file) -> < 68/push 0/imm32/read 68/push 0/imm32/write 89/copy 3/mod/direct 2/rm32/EDX . . . 4/r32/ESP . . # copy ESP to EDX - # var in/ESI = stream(4096 * 1) - 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 0x1000/imm32 # subtract from ESP - 68/push 0x1000/imm32/length + # var in/ESI = stream(16384 * 1) + 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 0x4000/imm32 # subtract from ESP + 68/push 0x4000/imm32/length 68/push 0/imm32/read 68/push 0/imm32/write 89/copy 3/mod/direct 6/rm32/ESI . . . 4/r32/ESP . . # copy ESP to ESI @@ -4504,7 +4504,7 @@ test-num-bytes-handles-imm32: == data Segment-size: - 0x1000/imm32/4KB + 0x8000/imm32/4KB # This block of bytes gets copied to the start of the output ELF file, with # some fields filled in. -- cgit 1.4.1-2-gfad0