diff options
-rw-r--r-- | subx/072slice.subx | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/subx/072slice.subx b/subx/072slice.subx index 1e2a5db0..0ebbf388 100644 --- a/subx/072slice.subx +++ b/subx/072slice.subx @@ -681,29 +681,29 @@ write-slice: # out : (address buffered-file), s : (address slice) 8b/copy 0/mod/indirect 6/rm32/ESI . . . 1/r32/ECX . . # copy *ESI to ECX # max/ESI = s->end 8b/copy 1/mod/*+disp8 6/rm32/ESI . . . 6/r32/ESI 4/disp8 . # copy *(ESI+4) to ESI - # EDI = f + # EDI = out 8b/copy 1/mod/*+disp8 5/rm32/EBP . . 7/r32/EDI 8/disp8 . # copy *(EBP+8) to EDI - # EDX = f->length + # EDX = out->length 8b/copy 1/mod/*+disp8 7/rm32/EDI . . . 2/r32/EDX 0xc/disp8 . # copy *(EDI+12) to EDX - # EBX = f->write + # EBX = out->write 8b/copy 1/mod/*+disp8 7/rm32/EDI . . . 3/r32/EBX 4/disp8 . # copy *(EDI+4) to EBX $write-slice:loop: # if (curr >= max) break 39/compare 3/mod/direct 1/rm32/ECX . . . 6/r32/ESI . . # compare ECX with ESI 7d/jump-if-greater-or-equal $write-slice:loop-end/disp8 - # if (f->write >= f->length) flush and clear f's stream + # if (out->write >= out->length) flush and clear out's stream 39/compare 3/mod/direct 3/rm32/EBX . . . 2/r32/EDX . . # compare EBX with EDX 7c/jump-if-lesser $write-slice:to-stream/disp8 - # . persist f->write + # . persist out->write 89/copy 1/mod/*+disp8 7/rm32/EDI . . . 3/r32/EBX 4/disp8 . # copy EBX to *(EDI+4) - # . flush(f) + # . flush(out) # . . push args 57/push-EDI # . . call e8/call flush/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . clear-stream(stream = f+4) + # . clear-stream(stream = out+4) # . . push args 8d/copy-address 1/mod/*+disp8 7/rm32/EDI . . . 0/r32/EAX 4/disp8 . # copy EDI+4 to EAX 50/push-EAX @@ -711,16 +711,16 @@ $write-slice:loop: e8/call clear-stream/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP - # . f->write must now be 0; update its cache at EBX + # . out->write must now be 0; update its cache at EBX 31/xor 3/mod/direct 3/rm32/EBX . . . 3/r32/EBX . . # clear EBX $write-slice:to-stream: - # f->data[f->write] = *in + # out->data[out->write] = *in # . AL = *in 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 - # . f->data[f->write] = AL + # . out->data[out->write] = AL 88/copy-byte 1/mod/*+disp8 4/rm32/sib 7/base/EDI 3/index/EBX . 0/r32/AL 0x10/disp8 . # copy AL to *(EDI+EBX+16) - # ++f->write + # ++out->write 43/increment-EBX # ++in 41/increment-ECX |