about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--056trace.subx34
-rwxr-xr-xapps/assortbin42847 -> 42810 bytes
-rwxr-xr-xapps/bracesbin42863 -> 42826 bytes
-rwxr-xr-xapps/callsbin47573 -> 47536 bytes
-rwxr-xr-xapps/crenshaw2-1bin42255 -> 42218 bytes
-rwxr-xr-xapps/crenshaw2-1bbin42802 -> 42765 bytes
-rwxr-xr-xapps/dquotesbin46497 -> 46460 bytes
-rwxr-xr-xapps/factorialbin41274 -> 41237 bytes
-rwxr-xr-xapps/handlebin42172 -> 42135 bytes
-rwxr-xr-xapps/hexbin45094 -> 45057 bytes
-rwxr-xr-xapps/mubin63230 -> 63193 bytes
-rwxr-xr-xapps/packbin55239 -> 55202 bytes
-rwxr-xr-xapps/sigilsbin55248 -> 55211 bytes
-rwxr-xr-xapps/surveybin52088 -> 52051 bytes
-rwxr-xr-xapps/testsbin41645 -> 41608 bytes
15 files changed, 7 insertions, 27 deletions
diff --git a/056trace.subx b/056trace.subx
index beff1993..2bcdde1e 100644
--- a/056trace.subx
+++ b/056trace.subx
@@ -842,34 +842,14 @@ clear-trace-stream:
     # . prologue
     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 = *Trace-stream
-    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy *Trace-stream to eax
-    # ecx = t->length
-    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(eax+8) to ecx
-    # ecx = &t->data[t->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
-    # t->write = 0
-    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
-    # t->read = 0
-    c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         0/imm32           # copy to *(eax+4)
-    # eax = t->data
-    81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xc/imm32         # add to eax
-$clear-trace-stream:loop:
-    # if (eax >= ecx) break
-    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
-    73/jump-if-greater-or-equal-unsigned  $clear-trace-stream:end/disp8
-    # *eax = 0
-    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
-    # eax += 4
-    81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               4/imm32           # add to eax
-    eb/jump  $clear-trace-stream:loop/disp8
+    # clear-stream(*Trace-stream)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
 $clear-trace-stream:end:
-    # . restore registers
-    59/pop-to-ecx
-    58/pop-to-eax
     # . epilogue
     89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
     5d/pop-to-ebp
diff --git a/apps/assort b/apps/assort
index 4cd323b4..05e615a7 100755
--- a/apps/assort
+++ b/apps/assort
Binary files differdiff --git a/apps/braces b/apps/braces
index 0bba8f4c..7307be11 100755
--- a/apps/braces
+++ b/apps/braces
Binary files differdiff --git a/apps/calls b/apps/calls
index b2d6c12d..418d230e 100755
--- a/apps/calls
+++ b/apps/calls
Binary files differdiff --git a/apps/crenshaw2-1 b/apps/crenshaw2-1
index 7b4e793b..7103908f 100755
--- a/apps/crenshaw2-1
+++ b/apps/crenshaw2-1
Binary files differdiff --git a/apps/crenshaw2-1b b/apps/crenshaw2-1b
index 6faddc7e..31b9cac1 100755
--- a/apps/crenshaw2-1b
+++ b/apps/crenshaw2-1b
Binary files differdiff --git a/apps/dquotes b/apps/dquotes
index df624e36..ec6808ec 100755
--- a/apps/dquotes
+++ b/apps/dquotes
Binary files differdiff --git a/apps/factorial b/apps/factorial
index f3475c45..d3cee9da 100755
--- a/apps/factorial
+++ b/apps/factorial
Binary files differdiff --git a/apps/handle b/apps/handle
index b4968a96..fdc96dcf 100755
--- a/apps/handle
+++ b/apps/handle
Binary files differdiff --git a/apps/hex b/apps/hex
index 9fe6ca35..785d81f8 100755
--- a/apps/hex
+++ b/apps/hex
Binary files differdiff --git a/apps/mu b/apps/mu
index a20ab6b4..e95a43f1 100755
--- a/apps/mu
+++ b/apps/mu
Binary files differdiff --git a/apps/pack b/apps/pack
index d92ef41a..74d4ed32 100755
--- a/apps/pack
+++ b/apps/pack
Binary files differdiff --git a/apps/sigils b/apps/sigils
index e51f6ff8..a792c7e0 100755
--- a/apps/sigils
+++ b/apps/sigils
Binary files differdiff --git a/apps/survey b/apps/survey
index c2ef532a..23eb9e3b 100755
--- a/apps/survey
+++ b/apps/survey
Binary files differdiff --git a/apps/tests b/apps/tests
index 2e4ea874..dd75aac1 100755
--- a/apps/tests
+++ b/apps/tests
Binary files differ