about summary refs log tree commit diff stats
path: root/subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-07-20 09:48:57 -0700
committerKartik Agaram <vc@akkartik.com>2019-07-20 09:48:57 -0700
commit47a9d22a059fc7baf52dca8c7942dbe01619df27 (patch)
treec8488fe84a23157f50167f3e2986fecbba0bbb33 /subx
parentc37b575a04e47d7c84e5274b64054902489471a9 (diff)
downloadmu-47a9d22a059fc7baf52dca8c7942dbe01619df27.tar.gz
5426
Diffstat (limited to 'subx')
-rwxr-xr-xsubx/apps/assortbin34142 -> 34150 bytes
-rw-r--r--subx/apps/assort.subx9
-rwxr-xr-xsubx/apps/dquotesbin40495 -> 40503 bytes
-rw-r--r--subx/apps/dquotes.subx7
-rwxr-xr-xsubx/apps/packbin46791 -> 46803 bytes
-rw-r--r--subx/apps/subx-common.subx15
-rwxr-xr-xsubx/apps/surveybin42791 -> 42799 bytes
-rw-r--r--subx/apps/survey.subx11
8 files changed, 23 insertions, 19 deletions
diff --git a/subx/apps/assort b/subx/apps/assort
index e9eb52ab..973806d4 100755
--- a/subx/apps/assort
+++ b/subx/apps/assort
Binary files differdiff --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
--- a/subx/apps/dquotes
+++ b/subx/apps/dquotes
Binary files differdiff --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
--- a/subx/apps/pack
+++ b/subx/apps/pack
Binary files differdiff --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
--- a/subx/apps/survey
+++ b/subx/apps/survey
Binary files differdiff --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