about summary refs log tree commit diff stats
path: root/055stream.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-12-08 13:56:46 -0800
committerKartik Agaram <vc@akkartik.com>2019-12-08 23:31:05 -0800
commit2a2a5b1e43b6aa650a41ab1ec68d9778c14cb649 (patch)
tree734619639755cf5b95490bdc4362bbef0a504881 /055stream.subx
parenta93cd189c95fc82a8f1db4e42e5f278bc642bb0c (diff)
downloadmu-2a2a5b1e43b6aa650a41ab1ec68d9778c14cb649.tar.gz
5804
Try to make the comments consistent with the type system we'll eventually
have.
Diffstat (limited to '055stream.subx')
-rw-r--r--055stream.subx18
1 files changed, 9 insertions, 9 deletions
diff --git a/055stream.subx b/055stream.subx
index c60be1d5..6568602a 100644
--- a/055stream.subx
+++ b/055stream.subx
@@ -3,7 +3,7 @@
 # A stream looks like this:
 #   write : int  # index at which writes go
 #   read : int  # index that we've read until
-#   data : (array byte)  # prefixed by length as usual
+#   data : (ref array byte)  # prefixed by length as usual
 #
 # some primitives for operating on streams:
 #   - clear-stream (clears everything but the data length)
@@ -14,7 +14,7 @@
 # . 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
 
-clear-stream:  # f : (address stream)
+clear-stream:  # f : (address stream byte)
     # . prologue
     55/push-ebp
     89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
@@ -23,23 +23,23 @@ clear-stream:  # f : (address stream)
     51/push-ecx
     # eax = f
     8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
-    # ecx = f->length
+    # var count/ecx : int = f->length
     8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(eax+8) to ecx
-    # ecx = &f->data[f->length]
+    # var max/ecx : (address byte) = &f->data[f->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
     # f->write = 0
     c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
     # f->read = 0
     c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         0/imm32           # copy to *(eax+4)
-    # eax = f->data
+    # var curr/eax : (address byte) = f->data
     81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xc/imm32         # add to eax
 $clear-stream:loop:
-    # if (eax >= ecx) break
+    # if (curr >= max) break
     39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
     73/jump-if-greater-or-equal-unsigned  $clear-stream:end/disp8
-    # *eax = 0
+    # *curr = 0
     c6          0/subop/copy-byte   0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm8            # copy byte to *eax
-    # ++eax
+    # ++curr
     40/increment-eax
     eb/jump  $clear-stream:loop/disp8
 $clear-stream:end:
@@ -51,7 +51,7 @@ $clear-stream:end:
     5d/pop-to-ebp
     c3/return
 
-rewind-stream:  # f : (address stream)
+rewind-stream:  # f : (address stream byte)
     # . prologue
     55/push-ebp
     89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp