about summary refs log tree commit diff stats
path: root/apps/mu.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-02-07 00:01:59 -0800
committerKartik Agaram <vc@akkartik.com>2020-02-07 00:02:09 -0800
commitf3d054032d8c67901c43b94d3ff42eb623561bda (patch)
tree279a5c7b58878a4ed45cb6bfa4b98776a148b9cf /apps/mu.subx
parent3401742e551a48eef4987a80ab0a6f310e539329 (diff)
downloadmu-f3d054032d8c67901c43b94d3ff42eb623561bda.tar.gz
5991
Diffstat (limited to 'apps/mu.subx')
-rw-r--r--apps/mu.subx5
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/mu.subx b/apps/mu.subx
index 81c47ece..e0dd1908 100644
--- a/apps/mu.subx
+++ b/apps/mu.subx
@@ -1485,6 +1485,7 @@ populate-mu-function-header:  # first-line: (addr stream byte), out: (handle fun
     # read function name
     (next-word *(ebp+8) %ecx)
     # error checking
+    # TODO: error if name starts with 'break' or 'loop'
     # if (word-slice == '{') abort
     (slice-equal? %ecx "{")   # => eax
     3d/compare-eax-and 0/imm32
@@ -4315,7 +4316,9 @@ $emit-subx-stmt-list:check-for-break:
           (string-starts-with? *(ecx+4) "break")  # Stmt1-operation => eax
           3d/compare-eax-and 0/imm32
           0f 84/jump-if-= break/disp32
-$emit-subx-stmt-list:break:
+          81 7/subop/compare *(ecx+8) 0/imm32  # Stmt1-inouts
+          0f 85/jump-if-!= break/disp32
+$emit-subx-stmt-list:zero-arg-break:
           # create a new block for the remaining statements
           (emit-indent *(ebp+8) *Curr-block-depth)
           (write-buffered *(ebp+8) "{\n")