From 2a2a5b1e43b6aa650a41ab1ec68d9778c14cb649 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sun, 8 Dec 2019 13:56:46 -0800 Subject: 5804 Try to make the comments consistent with the type system we'll eventually have. --- 055stream.subx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to '055stream.subx') 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 -- cgit 1.4.1-2-gfad0