about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--apps/mu.subx10
1 files changed, 4 insertions, 6 deletions
diff --git a/apps/mu.subx b/apps/mu.subx
index 3a99b710..447a0126 100644
--- a/apps/mu.subx
+++ b/apps/mu.subx
@@ -7889,11 +7889,10 @@ emit-cleanup-code-until-depth:  # out: (addr buffered-file), vars: (addr stack (
     8b/-> *(ebp+0xc) 1/r32/ecx
     # var esi: int = vars->top
     8b/-> *ecx 6/r32/esi
+    # var curr/esi: (addr handle var) = &vars->data[vars->top - 8]
+    8d/copy-address *(ecx+esi) 6/r32/esi  # vars + 8 + vars->top - 8
     # var min/ecx: (addr handle var) = vars->data
     81 0/subop/add %ecx 8/imm32
-    # var curr/esi: (addr handle var) = &vars->data[vars->top - 8]
-    81 5/subop/subtract %esi 8/imm32
-    8d/copy-address *(ecx+esi) 6/r32/esi
     # edx = until-block-depth
     8b/-> *(ebp+0x10) 2/r32/edx
     {
@@ -7976,11 +7975,10 @@ emit-cleanup-code-until-target:  # out: (addr buffered-file), vars: (addr stack
     8b/-> *(ebp+0xc) 1/r32/ecx
     # var eax: int = vars->top
     8b/-> *ecx 0/r32/eax
+    # var curr/edx: (addr handle var) = &vars->data[vars->top - 8]
+    8d/copy-address *(ecx+eax) 2/r32/edx  # vars + 8 + vars->top - 8
     # var min/ecx: (addr handle var) = vars->data
     81 0/subop/add %ecx 8/imm32
-    # var curr/edx: (addr handle var) = &vars->data[vars->top - 8]
-    3d/subtract-from-eax 8/imm32
-    8d/copy-address *(ecx+eax) 2/r32/edx
     {
 $emit-cleanup-code-until-target:loop:
       # if (curr < min) break