about summary refs log tree commit diff stats
path: root/077subx-words.subx
diff options
context:
space:
mode:
Diffstat (limited to '077subx-words.subx')
-rw-r--r--077subx-words.subx46
1 files changed, 23 insertions, 23 deletions
diff --git a/077subx-words.subx b/077subx-words.subx
index 3e568e04..6f93e421 100644
--- a/077subx-words.subx
+++ b/077subx-words.subx
@@ -5,9 +5,9 @@
 # . op          subop               mod             rm32          base        index         scale       r32
 # . 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
 
-has-metadata?:  # word : (addr slice), s : (addr string) -> eax : boolean
+has-metadata?:  # word: (addr slice), s: (addr string) -> eax: boolean
     # pseudocode:
-    #   var twig : &slice = next-token-from-slice(word->start, word->end, '/')  # skip name
+    #   var twig: &slice = next-token-from-slice(word->start, word->end, '/')  # skip name
     #   curr = twig->end
     #   while true
     #     twig = next-token-from-slice(curr, word->end, '/')
@@ -25,9 +25,9 @@ has-metadata?:  # word : (addr slice), s : (addr string) -> eax : boolean
     57/push-edi
     # esi = word
     8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
-    # var edx : (addr byte) = word->end
+    # var edx: (addr byte) = word->end
     8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   4/disp8         .                 # copy *(esi+4) to edx
-    # var twig/edi : slice
+    # var twig/edi: slice
     68/push  0/imm32/end
     68/push  0/imm32/start
     89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
@@ -101,7 +101,7 @@ test-has-metadata-true:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var in/esi : slice = {eax, ecx}
+    # var in/esi: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
@@ -136,7 +136,7 @@ test-has-metadata-false:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var in/esi : slice = {eax, ecx}
+    # var in/esi: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
@@ -171,7 +171,7 @@ test-has-metadata-ignore-name:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var in/esi : slice = {eax, ecx}
+    # var in/esi: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
@@ -206,7 +206,7 @@ test-has-metadata-multiple-true:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var in/esi : slice = {eax, ecx}
+    # var in/esi: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
@@ -241,7 +241,7 @@ test-has-metadata-multiple-false:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var in/esi : slice = {eax, ecx}
+    # var in/esi: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
@@ -275,7 +275,7 @@ test-has-metadata-multiple-false:
 #: - if it starts with '0x' it's treated as a number. (redundant)
 #: - if it's two characters long, it can't be a name. Either it's a hex
 #:   byte, or it raises an error.
-is-valid-name?:  # in : (addr slice) -> eax : boolean
+is-valid-name?:  # in: (addr slice) -> eax: boolean
     # . prologue
     55/push-ebp
     89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
@@ -284,21 +284,21 @@ is-valid-name?:  # in : (addr slice) -> eax : boolean
     56/push-esi
     # esi = in
     8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
-    # var start/ecx : (addr byte) = in->start
+    # var start/ecx: (addr byte) = in->start
     8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
 $is-valid-name?:check0:
     # if (start >= in->end) return false
     3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare ecx with *(esi+4)
     73/jump-if-addr>=  $is-valid-name?:false/disp8
 $is-valid-name?:check1:
-    # var len/eax : int = in->end - start
+    # var len/eax: int = in->end - start
     8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
     29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
     # if (eax == 2) return false
     3d/compare-eax-and  2/imm32
     74/jump-if-=  $is-valid-name?:false/disp8
 $is-valid-name?:check2:
-    # var c/eax : (addr byte) = *start
+    # var c/eax: (addr byte) = *start
     31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
     8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
     # if (c == "-") return false
@@ -337,7 +337,7 @@ test-is-valid-name-digit-prefix:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -371,7 +371,7 @@ test-is-valid-name-negative-prefix:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -405,7 +405,7 @@ test-is-valid-name-0x-prefix:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -439,7 +439,7 @@ test-is-valid-name-starts-with-pre-digit:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -473,7 +473,7 @@ test-is-valid-name-starts-with-post-digit:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -507,7 +507,7 @@ test-is-valid-name-starts-with-digit:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -532,7 +532,7 @@ test-is-valid-name-starts-with-digit:
     5d/pop-to-ebp
     c3/return
 
-is-label?: # word : (addr slice) -> eax : boolean
+is-label?: # word: (addr slice) -> eax: boolean
     # . prologue
     55/push-ebp
     89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
@@ -540,7 +540,7 @@ is-label?: # word : (addr slice) -> eax : boolean
     51/push-ecx
     # ecx = word
     8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
-    # var end/ecx : (addr byte) = word->end
+    # var end/ecx: (addr byte) = word->end
     8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(ecx+4) to ecx
     # return *(end - 1) == ':'
     # . eax = *(end-1)
@@ -569,7 +569,7 @@ $test-is-label?:true:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
@@ -595,7 +595,7 @@ $test-is-label?:false:
     8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
     8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
     05/add-to-eax  4/imm32
-    # var slice/ecx : slice = {eax, ecx}
+    # var slice/ecx: slice = {eax, ecx}
     51/push-ecx
     50/push-eax
     89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx