From 47a9d22a059fc7baf52dca8c7942dbe01619df27 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sat, 20 Jul 2019 09:48:57 -0700 Subject: 5426 --- subx/apps/assort | Bin 34142 -> 34150 bytes subx/apps/assort.subx | 9 ++------- subx/apps/dquotes | Bin 40495 -> 40503 bytes subx/apps/dquotes.subx | 7 ++----- subx/apps/pack | Bin 46791 -> 46803 bytes subx/apps/subx-common.subx | 15 +++++++++++++++ subx/apps/survey | Bin 42791 -> 42799 bytes subx/apps/survey.subx | 11 ++++------- 8 files changed, 23 insertions(+), 19 deletions(-) diff --git a/subx/apps/assort b/subx/apps/assort index e9eb52ab..973806d4 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 d2418ce3..a855f245 100644 --- a/subx/apps/assort.subx +++ b/subx/apps/assort.subx @@ -25,10 +25,10 @@ Entry: # initialize heap - # . Heap = new-segment(1MB) + # . Heap = new-segment(Heap-size) # . . push args 68/push Heap/imm32 - 68/push 0x100000/imm32/1MB + 68/push Heap-size/imm32 # . . call e8/call new-segment/disp32 # . . discard args @@ -836,9 +836,4 @@ $write-segments:end: 5d/pop-to-EBP c3/return -== data - -Segment-size: - 0x8000/imm32/4KB - # . . vim:nowrap:textwidth=0 diff --git a/subx/apps/dquotes b/subx/apps/dquotes index de36ba12..5f35df4b 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 c108ade5..eb0575cc 100644 --- a/subx/apps/dquotes.subx +++ b/subx/apps/dquotes.subx @@ -21,10 +21,10 @@ Entry: # initialize heap - # . Heap = new-segment(1MB) + # . Heap = new-segment(Heap-size) # . . push args 68/push Heap/imm32 - 68/push 0x100000/imm32/1MB + 68/push Heap-size/imm32 # . . call e8/call new-segment/disp32 # . . discard args @@ -2638,9 +2638,6 @@ test-string-length-at-start-of-slice-escaped: == data -Segment-size: - 0x8000/imm32/32KB - Next-string-literal: # tracks the next auto-generated variable name 1/imm32 diff --git a/subx/apps/pack b/subx/apps/pack index 6dc1529c..b52f952c 100755 Binary files a/subx/apps/pack and b/subx/apps/pack differ diff --git a/subx/apps/subx-common.subx b/subx/apps/subx-common.subx index e3af9381..a5d8b037 100644 --- a/subx/apps/subx-common.subx +++ b/subx/apps/subx-common.subx @@ -1,5 +1,20 @@ # some common helpers shared by phases of the SubX converter +# - buffer sizes shared by all phases +== data + +# maximum memory available for allocation +Heap-size: + 0x100000/imm32/1MB + +# maximum size of a single segment +Segment-size: + 0x8000/imm32/32KB + +# maximum size of input textual stream (spanning all segments) +Input-size: + 0x10000/imm32/64KB # should be enough for everyone + == code # instruction effective address register displacement immediate # . op subop mod rm32 base index scale r32 diff --git a/subx/apps/survey b/subx/apps/survey index 4b258446..20c85c3f 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 9717944d..3506e354 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(1MB) + # Heap = new-segment(Heap-size) # . . push args 68/push Heap/imm32 - 68/push 0x100000/imm32/1MB + 68/push Heap-size/imm32 # . . 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(16384 * 1) + # var in/ESI = stream(Input-size * 1) 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 0x4000/imm32 # subtract from ESP - 68/push 0x4000/imm32/length + 68/push Input-size/imm32 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 @@ -4503,9 +4503,6 @@ test-num-bytes-handles-imm32: == data -Segment-size: - 0x8000/imm32/4KB - # This block of bytes gets copied to the start of the output ELF file, with # some fields filled in. # http://www.sco.com/developers/gabi/latest/ch4.eheader.html -- cgit 1.4.1-2-gfad0