about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xapps/surveybin49853 -> 49855 bytes
-rw-r--r--apps/survey.subx9
2 files changed, 6 insertions, 3 deletions
diff --git a/apps/survey b/apps/survey
index 620822a4..49728e4e 100755
--- a/apps/survey
+++ b/apps/survey
Binary files differdiff --git a/apps/survey.subx b/apps/survey.subx
index ca3462ba..d8885db3 100644
--- a/apps/survey.subx
+++ b/apps/survey.subx
@@ -1039,7 +1039,8 @@ $compute-offsets:case-label:
     74/jump-if-=  $compute-offsets:case-default/disp8
     # strip trailing ':' from word-slice
     ff          1/subop/decrement   1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # decrement *(edx+4)
-    # linfo/eax = get-or-insert-slice(labels, word-slice, row-size=16)
+    # linfo/edi = get-or-insert-slice(labels, word-slice, row-size=16)
+    # . eax = get-or-insert-slice(labels, word-slice, row-size=16)
     # . . push args
     68/push  Heap/imm32
     68/push  0x10/imm32/row-size
@@ -1049,9 +1050,11 @@ $compute-offsets:case-label:
     e8/call  get-or-insert-slice/disp32
     # . . discard args
     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
 $compute-offsets:save-label-offset:
     # linfo->segment-name = curr-segment-name
-    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           6/r32/esi   .               .                 # copy esi to *eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           6/r32/esi   .               .                 # copy esi to *edi
     # trace-slsss("label '" word-slice "' is in segment '" current-segment-name "'.")
     # . . push args
     68/push  "'."/imm32
@@ -1067,7 +1070,7 @@ $compute-offsets:save-label-offset:
     # . ebx = segment-offset
     8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   compute-offsets:segment-offset/disp32  # copy *segment-offset to ebx
     # . linfo->segment-offset = ebx
-    89/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           3/r32/ebx   4/disp8         .                 # copy ebx to *(eax+4)
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy ebx to *(edi+4)
     # trace-slsns("label '" word-slice "' is at segment offset " *segment-offset/eax ".")
     # . . push args
     68/push  "."/imm32