diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-12-09 01:26:58 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-12-09 01:26:58 -0800 |
commit | 8aeb85f04ee68b960a6d326aca1a17dec2f6d019 (patch) | |
tree | 26f861361c28ca77fb8298b21a905dc6e06c91ef /html/apps/calls.subx.html | |
parent | 2249e605c19f0dbe0c34c1c4f635b802f56dc535 (diff) | |
download | mu-8aeb85f04ee68b960a6d326aca1a17dec2f6d019.tar.gz |
5806
Diffstat (limited to 'html/apps/calls.subx.html')
-rw-r--r-- | html/apps/calls.subx.html | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/html/apps/calls.subx.html b/html/apps/calls.subx.html index d29b8385..f6e99787 100644 --- a/html/apps/calls.subx.html +++ b/html/apps/calls.subx.html @@ -109,11 +109,11 @@ if ('onhashchange' in window) { <span id="L48" class="LineNr"> 48 </span> 68/push <span class="Constant">"test"</span>/imm32 <span id="L49" class="LineNr"> 49 </span> ff 6/subop/push *(ebp+8) <span id="L50" class="LineNr"> 50 </span> <span class="subxS2Comment"># . . call</span> -<span id="L51" class="LineNr"> 51 </span> e8/call <a href='../052kernel-string-equal.subx.html#L31'>kernel-string-equal?</a>/disp32 +<span id="L51" class="LineNr"> 51 </span> e8/call <a href='../052kernel-string-equal.subx.html#L33'>kernel-string-equal?</a>/disp32 <span id="L52" class="LineNr"> 52 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L53" class="LineNr"> 53 </span> 81 0/subop/add %esp 8/imm32 -<span id="L54" class="LineNr"> 54 </span> <span class="subxS1Comment"># . if (eax == 0) goto run-main</span> -<span id="L55" class="LineNr"> 55 </span> 3d/compare-eax-and 0/imm32 +<span id="L54" class="LineNr"> 54 </span> <span class="subxS1Comment"># . if (eax == false) goto run-main</span> +<span id="L55" class="LineNr"> 55 </span> 3d/compare-eax-and 0/imm32/false <span id="L56" class="LineNr"> 56 </span> 74/jump-if-equal $subx-calls-main:interactive/disp8 <span id="L57" class="LineNr"> 57 </span> <span class="subxComment"># run-tests()</span> <span id="L58" class="LineNr"> 58 </span> e8/call run-tests/disp32 @@ -138,8 +138,8 @@ if ('onhashchange' in window) { <span id="L77" class="LineNr"> 77 </span> <span id="L78" class="LineNr"> 78 </span><span class="subxFunction">subx-calls</span>: <span class="subxComment"># in : (address buffered-file), out : (address buffered-file)</span> <span id="L79" class="LineNr"> 79 </span> <span class="subxComment"># pseudocode:</span> -<span id="L80" class="LineNr"> 80 </span> <span class="subxComment"># var line : (stream byte 512)</span> -<span id="L81" class="LineNr"> 81 </span> <span class="subxComment"># var words : (stream slice 16) # at most function name and 15 args</span> +<span id="L80" class="LineNr"> 80 </span> <span class="subxComment"># var line : (ref stream byte 512)</span> +<span id="L81" class="LineNr"> 81 </span> <span class="subxComment"># var words : (ref stream slice 16) # at most function name and 15 args</span> <span id="L82" class="LineNr"> 82 </span> <span class="subxComment"># while true</span> <span id="L83" class="LineNr"> 83 </span> <span class="subxComment"># clear-stream(line)</span> <span id="L84" class="LineNr"> 84 </span> <span class="subxComment"># read-line-buffered(in, line)</span> @@ -166,13 +166,13 @@ if ('onhashchange' in window) { <span id="L105" class="LineNr"> 105 </span> 51/push-ecx <span id="L106" class="LineNr"> 106 </span> 52/push-edx <span id="L107" class="LineNr"> 107 </span> 56/push-esi -<span id="L108" class="LineNr"> 108 </span> <span class="subxComment"># var line/esi : (address stream byte) = stream(512)</span> +<span id="L108" class="LineNr"> 108 </span> <span class="subxComment"># var line/esi : (ref stream byte 512)</span> <span id="L109" class="LineNr"> 109 </span> 81 5/subop/subtract %esp 0x200/imm32 <span id="L110" class="LineNr"> 110 </span> 68/push 0x200/imm32/length <span id="L111" class="LineNr"> 111 </span> 68/push 0/imm32/read <span id="L112" class="LineNr"> 112 </span> 68/push 0/imm32/write <span id="L113" class="LineNr"> 113 </span> 89/<- %esi 4/r32/esp -<span id="L114" class="LineNr"> 114 </span> <span class="subxComment"># var words/edx : (address stream slice) = stream(16, 8)</span> +<span id="L114" class="LineNr"> 114 </span> <span class="subxComment"># var words/edx : (ref stream slice 128) # 16 rows * 8 bytes/row</span> <span id="L115" class="LineNr"> 115 </span> 81 5/subop/subtract %esp 0x80/imm32 <span id="L116" class="LineNr"> 116 </span> 68/push 0x80/imm32/length <span id="L117" class="LineNr"> 117 </span> 68/push 0/imm32/read @@ -294,7 +294,7 @@ if ('onhashchange' in window) { <span id="L233" class="LineNr"> 233 </span> <span id="L234" class="LineNr"> 234 </span><span class="subxFunction">parse-line</span>: <span class="subxComment"># line : (address stream byte), words : (address stream slice)</span> <span id="L235" class="LineNr"> 235 </span> <span class="subxComment"># pseudocode:</span> -<span id="L236" class="LineNr"> 236 </span> <span class="subxComment"># var word-slice : (address slice)</span> +<span id="L236" class="LineNr"> 236 </span> <span class="subxComment"># var word-slice : (ref slice)</span> <span id="L237" class="LineNr"> 237 </span> <span class="subxComment"># while true</span> <span id="L238" class="LineNr"> 238 </span> <span class="subxComment"># word-slice = next-word-string-or-expression-without-metadata(line)</span> <span id="L239" class="LineNr"> 239 </span> <span class="subxComment"># if slice-empty?(word-slice)</span> @@ -307,7 +307,7 @@ if ('onhashchange' in window) { <span id="L246" class="LineNr"> 246 </span> 89/<- %ebp 4/r32/esp <span id="L247" class="LineNr"> 247 </span> <span class="subxS1Comment"># . save registers</span> <span id="L248" class="LineNr"> 248 </span> 51/push-ecx -<span id="L249" class="LineNr"> 249 </span> <span class="subxComment"># var word-slice/ecx : (address slice) = {0, 0}</span> +<span id="L249" class="LineNr"> 249 </span> <span class="subxComment"># var word-slice/ecx : (ref slice)</span> <span id="L250" class="LineNr"> 250 </span> 68/push 0/imm32/end <span id="L251" class="LineNr"> 251 </span> 68/push 0/imm32/start <span id="L252" class="LineNr"> 252 </span> 89/<- %ecx 4/r32/esp @@ -329,8 +329,8 @@ if ('onhashchange' in window) { <span id="L268" class="LineNr"> 268 </span> e8/call <a href='../072slice.subx.html#L9'>slice-empty?</a>/disp32 <span id="L269" class="LineNr"> 269 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L270" class="LineNr"> 270 </span> 81 0/subop/add %esp 4/imm32 -<span id="L271" class="LineNr"> 271 </span> <span class="subxS1Comment"># . if (eax != 0) break</span> -<span id="L272" class="LineNr"> 272 </span> 3d/compare-eax-and 0/imm32 +<span id="L271" class="LineNr"> 271 </span> <span class="subxS1Comment"># . if (eax != false) break</span> +<span id="L272" class="LineNr"> 272 </span> 3d/compare-eax-and 0/imm32/false <span id="L273" class="LineNr"> 273 </span> 0f 85/jump-if-not-equal $parse-line:end/disp32 <span id="L274" class="Folded"> 274 </span><span class="Folded">+-- 40 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L314" class="LineNr"> 314 </span><span class="Constant">$parse-line:write-word</span>: @@ -403,9 +403,9 @@ if ('onhashchange' in window) { <span id="L381" class="LineNr"> 381 </span> 8b/-> *esi 1/r32/ecx <span id="L382" class="LineNr"> 382 </span> 81 5/subop/subtract %ecx 8/imm32 <span id="L383" class="LineNr"> 383 </span> 0f 8c/jump-if-lesser $emit-call:error1/disp32 -<span id="L384" class="LineNr"> 384 </span> <span class="subxComment"># curr/ecx = &words->data[words->write-8]</span> +<span id="L384" class="LineNr"> 384 </span> <span class="subxComment"># var curr/ecx : (address slice) = &words->data[words->write-8]</span> <span id="L385" class="LineNr"> 385 </span> 8d/copy-address *(esi+ecx+0xc) 1/r32/ecx -<span id="L386" class="LineNr"> 386 </span> <span class="subxComment"># min/edx = words->data</span> +<span id="L386" class="LineNr"> 386 </span> <span class="subxComment"># var min/edx : (address byte) = words->data</span> <span id="L387" class="LineNr"> 387 </span> 8d/copy-address *(esi+0xc) 2/r32/edx <span id="L388" class="LineNr"> 388 </span> <span class="subxH1Comment"># - emit pushes</span> <span id="L389" class="LineNr"> 389 </span><span class="Constant">$emit-call:push-loop</span>: @@ -413,15 +413,15 @@ if ('onhashchange' in window) { <span id="L391" class="LineNr"> 391 </span> 39/compare %ecx 2/r32/edx <span id="L392" class="LineNr"> 392 </span> 0f 8e/jump-if-lesser-or-equal $emit-call:call-instruction/disp32 <span id="L393" class="LineNr"> 393 </span> <span class="subxComment"># if (*curr->start in '%' '*') goto push-rm32</span> -<span id="L394" class="LineNr"> 394 </span> <span class="subxS1Comment"># . eax = curr->start</span> +<span id="L394" class="LineNr"> 394 </span> <span class="subxS1Comment"># . var start/eax : (address byte) = curr->start</span> <span id="L395" class="LineNr"> 395 </span> 8b/-> *ecx 0/r32/eax -<span id="L396" class="LineNr"> 396 </span> <span class="subxS1Comment"># . eax = (byte)*eax</span> +<span id="L396" class="LineNr"> 396 </span> <span class="subxS1Comment"># . var c/eax : byte = *eax</span> <span id="L397" class="LineNr"> 397 </span> 8b/-> *eax 0/r32/eax <span id="L398" class="LineNr"> 398 </span> 81 4/subop/and %eax 0xff/imm32 -<span id="L399" class="LineNr"> 399 </span> <span class="subxS1Comment"># . if (eax == '%') goto push-rm32</span> +<span id="L399" class="LineNr"> 399 </span> <span class="subxS1Comment"># . if (c == '%') goto push-rm32</span> <span id="L400" class="LineNr"> 400 </span> 3d/compare-eax-and 0x25/imm32/percent <span id="L401" class="LineNr"> 401 </span> 74/jump-if-equal $emit-call:push-rm32/disp8 -<span id="L402" class="LineNr"> 402 </span> <span class="subxS1Comment"># . if (eax == '*') goto push-rm32</span> +<span id="L402" class="LineNr"> 402 </span> <span class="subxS1Comment"># . if (c == '*') goto push-rm32</span> <span id="L403" class="LineNr"> 403 </span> 3d/compare-eax-and 0x2a/imm32/asterisk <span id="L404" class="LineNr"> 404 </span> 74/jump-if-equal $emit-call:push-rm32/disp8 <span id="L405" class="LineNr"> 405 </span><span class="Constant">$emit-call:push-imm32</span>: @@ -437,7 +437,7 @@ if ('onhashchange' in window) { <span id="L415" class="LineNr"> 415 </span> 51/push-ecx <span id="L416" class="LineNr"> 416 </span> ff 6/subop/push *(ebp+8) <span id="L417" class="LineNr"> 417 </span> <span class="subxS2Comment"># . . call</span> -<span id="L418" class="LineNr"> 418 </span> e8/call <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32 +<span id="L418" class="LineNr"> 418 </span> e8/call <a href='../072slice.subx.html#L880'>write-slice-buffered</a>/disp32 <span id="L419" class="LineNr"> 419 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L420" class="LineNr"> 420 </span> 81 0/subop/add %esp 8/imm32 <span id="L421" class="LineNr"> 421 </span> <span class="subxComment"># write-buffered(out, "/imm32\n")</span> @@ -463,7 +463,7 @@ if ('onhashchange' in window) { <span id="L441" class="LineNr"> 441 </span> 51/push-ecx <span id="L442" class="LineNr"> 442 </span> ff 6/subop/push *(ebp+8) <span id="L443" class="LineNr"> 443 </span> <span class="subxS2Comment"># . . call</span> -<span id="L444" class="LineNr"> 444 </span> e8/call <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32 +<span id="L444" class="LineNr"> 444 </span> e8/call <a href='../072slice.subx.html#L880'>write-slice-buffered</a>/disp32 <span id="L445" class="LineNr"> 445 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L446" class="LineNr"> 446 </span> 81 0/subop/add %esp 8/imm32 <span id="L447" class="LineNr"> 447 </span> <span class="subxComment"># write-buffered(out, "\n")</span> @@ -491,7 +491,7 @@ if ('onhashchange' in window) { <span id="L469" class="LineNr"> 469 </span> 51/push-ecx <span id="L470" class="LineNr"> 470 </span> ff 6/subop/push *(ebp+8) <span id="L471" class="LineNr"> 471 </span> <span class="subxS2Comment"># . . call</span> -<span id="L472" class="LineNr"> 472 </span> e8/call <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32 +<span id="L472" class="LineNr"> 472 </span> e8/call <a href='../072slice.subx.html#L880'>write-slice-buffered</a>/disp32 <span id="L473" class="LineNr"> 473 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L474" class="LineNr"> 474 </span> 81 0/subop/add %esp 8/imm32 <span id="L475" class="LineNr"> 475 </span> <span class="subxComment"># write-buffered(out, "/disp32\n")</span> @@ -517,7 +517,7 @@ if ('onhashchange' in window) { <span id="L495" class="LineNr"> 495 </span> 50/push-eax <span id="L496" class="LineNr"> 496 </span> ff 6/subop/push *(ebp+8) <span id="L497" class="LineNr"> 497 </span> <span class="subxS2Comment"># . . call</span> -<span id="L498" class="LineNr"> 498 </span> e8/call <a href='../066print-int.subx.html#L265'>print-int32-buffered</a>/disp32 +<span id="L498" class="LineNr"> 498 </span> e8/call <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32 <span id="L499" class="LineNr"> 499 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L500" class="LineNr"> 500 </span> 81 0/subop/add %esp 8/imm32 <span id="L501" class="LineNr"> 501 </span> <span class="subxComment"># write-buffered(out, "/imm32\n")</span> @@ -568,14 +568,14 @@ if ('onhashchange' in window) { <span id="L546" class="LineNr"> 546 </span> <span class="subxComment"># setup</span> <span id="L547" class="LineNr"> 547 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L548" class="LineNr"> 548 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L549" class="LineNr"> 549 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L549" class="LineNr"> 549 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L550" class="LineNr"> 550 </span> <span class="subxS2Comment"># . . call</span> <span id="L551" class="LineNr"> 551 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L552" class="LineNr"> 552 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L553" class="LineNr"> 553 </span> 81 0/subop/add %esp 4/imm32 -<span id="L554" class="LineNr"> 554 </span> <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file->buffer)</span> +<span id="L554" class="LineNr"> 554 </span> <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file->buffer)</span> <span id="L555" class="LineNr"> 555 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L556" class="LineNr"> 556 </span> 68/push <a href='../061read-byte.subx.html#L317'>_test-input-buffered-file->buffer</a>/imm32 +<span id="L556" class="LineNr"> 556 </span> 68/push $_test-input-buffered-file->buffer/imm32 <span id="L557" class="LineNr"> 557 </span> <span class="subxS2Comment"># . . call</span> <span id="L558" class="LineNr"> 558 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L559" class="LineNr"> 559 </span> <span class="subxS2Comment"># . . discard args</span> @@ -587,9 +587,9 @@ if ('onhashchange' in window) { <span id="L565" class="LineNr"> 565 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L566" class="LineNr"> 566 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L567" class="LineNr"> 567 </span> 81 0/subop/add %esp 4/imm32 -<span id="L568" class="LineNr"> 568 </span> <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file->buffer)</span> +<span id="L568" class="LineNr"> 568 </span> <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file->buffer)</span> <span id="L569" class="LineNr"> 569 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L570" class="LineNr"> 570 </span> 68/push <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file->buffer</a>/imm32 +<span id="L570" class="LineNr"> 570 </span> 68/push $_test-output-buffered-file->buffer/imm32 <span id="L571" class="LineNr"> 571 </span> <span class="subxS2Comment"># . . call</span> <span id="L572" class="LineNr"> 572 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L573" class="LineNr"> 573 </span> <span class="subxS2Comment"># . . discard args</span> @@ -597,7 +597,7 @@ if ('onhashchange' in window) { <span id="L575" class="LineNr"> 575 </span> <span class="subxS1Comment"># . write(_test-input-stream, "== abcd 0x1\n")</span> <span id="L576" class="LineNr"> 576 </span> <span class="subxS2Comment"># . . push args</span> <span id="L577" class="LineNr"> 577 </span> 68/push <span class="Constant">"== abcd 0x1\n"</span>/imm32 -<span id="L578" class="LineNr"> 578 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L578" class="LineNr"> 578 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L579" class="LineNr"> 579 </span> <span class="subxS2Comment"># . . call</span> <span id="L580" class="LineNr"> 580 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L581" class="LineNr"> 581 </span> <span class="subxS2Comment"># . . discard args</span> @@ -605,7 +605,7 @@ if ('onhashchange' in window) { <span id="L583" class="LineNr"> 583 </span> <span class="subxComment"># subx-calls(_test-input-buffered-file, _test-output-buffered-file)</span> <span id="L584" class="LineNr"> 584 </span> <span class="subxS2Comment"># . . push args</span> <span id="L585" class="LineNr"> 585 </span> 68/push <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32 -<span id="L586" class="LineNr"> 586 </span> 68/push <a href='../061read-byte.subx.html#L314'>_test-input-buffered-file</a>/imm32 +<span id="L586" class="LineNr"> 586 </span> 68/push <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32 <span id="L587" class="LineNr"> 587 </span> <span class="subxS2Comment"># . . call</span> <span id="L588" class="LineNr"> 588 </span> e8/call <a href='calls.subx.html#L78'>subx-calls</a>/disp32 <span id="L589" class="LineNr"> 589 </span> <span class="subxS2Comment"># . . discard args</span> @@ -624,7 +624,7 @@ if ('onhashchange' in window) { <span id="L602" class="LineNr"> 602 </span> 68/push <span class="Constant">"== abcd 0x1\n"</span>/imm32 <span id="L603" class="LineNr"> 603 </span> 68/push <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32 <span id="L604" class="LineNr"> 604 </span> <span class="subxS2Comment"># . . call</span> -<span id="L605" class="LineNr"> 605 </span> e8/call <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32 +<span id="L605" class="LineNr"> 605 </span> e8/call <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32 <span id="L606" class="LineNr"> 606 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L607" class="LineNr"> 607 </span> 81 0/subop/add %esp 0xc/imm32 <span id="L608" class="LineNr"> 608 </span> <span class="subxS1Comment"># . epilogue</span> @@ -639,14 +639,14 @@ if ('onhashchange' in window) { <span id="L617" class="LineNr"> 617 </span> <span class="subxComment"># setup</span> <span id="L618" class="LineNr"> 618 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L619" class="LineNr"> 619 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L620" class="LineNr"> 620 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L620" class="LineNr"> 620 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L621" class="LineNr"> 621 </span> <span class="subxS2Comment"># . . call</span> <span id="L622" class="LineNr"> 622 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L623" class="LineNr"> 623 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L624" class="LineNr"> 624 </span> 81 0/subop/add %esp 4/imm32 -<span id="L625" class="LineNr"> 625 </span> <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file->buffer)</span> +<span id="L625" class="LineNr"> 625 </span> <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file->buffer)</span> <span id="L626" class="LineNr"> 626 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L627" class="LineNr"> 627 </span> 68/push <a href='../061read-byte.subx.html#L317'>_test-input-buffered-file->buffer</a>/imm32 +<span id="L627" class="LineNr"> 627 </span> 68/push $_test-input-buffered-file->buffer/imm32 <span id="L628" class="LineNr"> 628 </span> <span class="subxS2Comment"># . . call</span> <span id="L629" class="LineNr"> 629 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L630" class="LineNr"> 630 </span> <span class="subxS2Comment"># . . discard args</span> @@ -658,9 +658,9 @@ if ('onhashchange' in window) { <span id="L636" class="LineNr"> 636 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L637" class="LineNr"> 637 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L638" class="LineNr"> 638 </span> 81 0/subop/add %esp 4/imm32 -<span id="L639" class="LineNr"> 639 </span> <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file->buffer)</span> +<span id="L639" class="LineNr"> 639 </span> <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file->buffer)</span> <span id="L640" class="LineNr"> 640 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L641" class="LineNr"> 641 </span> 68/push <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file->buffer</a>/imm32 +<span id="L641" class="LineNr"> 641 </span> 68/push $_test-output-buffered-file->buffer/imm32 <span id="L642" class="LineNr"> 642 </span> <span class="subxS2Comment"># . . call</span> <span id="L643" class="LineNr"> 643 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L644" class="LineNr"> 644 </span> <span class="subxS2Comment"># . . discard args</span> @@ -668,7 +668,7 @@ if ('onhashchange' in window) { <span id="L646" class="LineNr"> 646 </span> <span class="subxS1Comment"># . write(_test-input-stream, "(foo %eax)\n")</span> <span id="L647" class="LineNr"> 647 </span> <span class="subxS2Comment"># . . push args</span> <span id="L648" class="LineNr"> 648 </span> 68/push <span class="Constant">"(foo %eax)\n"</span>/imm32 -<span id="L649" class="LineNr"> 649 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L649" class="LineNr"> 649 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L650" class="LineNr"> 650 </span> <span class="subxS2Comment"># . . call</span> <span id="L651" class="LineNr"> 651 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L652" class="LineNr"> 652 </span> <span class="subxS2Comment"># . . discard args</span> @@ -676,7 +676,7 @@ if ('onhashchange' in window) { <span id="L654" class="LineNr"> 654 </span> <span class="subxComment"># subx-calls(_test-input-buffered-file, _test-output-buffered-file)</span> <span id="L655" class="LineNr"> 655 </span> <span class="subxS2Comment"># . . push args</span> <span id="L656" class="LineNr"> 656 </span> 68/push <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32 -<span id="L657" class="LineNr"> 657 </span> 68/push <a href='../061read-byte.subx.html#L314'>_test-input-buffered-file</a>/imm32 +<span id="L657" class="LineNr"> 657 </span> 68/push <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32 <span id="L658" class="LineNr"> 658 </span> <span class="subxS2Comment"># . . call</span> <span id="L659" class="LineNr"> 659 </span> e8/call <a href='calls.subx.html#L78'>subx-calls</a>/disp32 <span id="L660" class="LineNr"> 660 </span> <span class="subxS2Comment"># . . discard args</span> @@ -696,7 +696,7 @@ if ('onhashchange' in window) { <span id="L706" class="LineNr"> 706 </span> 68/push <span class="Constant">"# . (foo %eax)"</span>/imm32 <span id="L707" class="LineNr"> 707 </span> 68/push <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32 <span id="L708" class="LineNr"> 708 </span> <span class="subxS2Comment"># . . call</span> -<span id="L709" class="LineNr"> 709 </span> e8/call <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32 +<span id="L709" class="LineNr"> 709 </span> e8/call <a href='../058stream-equal.subx.html#L565'>check-next-stream-line-equal</a>/disp32 <span id="L710" class="LineNr"> 710 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L711" class="LineNr"> 711 </span> 81 0/subop/add %esp 0xc/imm32 <span id="L712" class="LineNr"> 712 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ff 6/subop/push %eax", msg)</span> @@ -705,7 +705,7 @@ if ('onhashchange' in window) { <span id="L715" class="LineNr"> 715 </span> 68/push <span class="Constant">"ff 6/subop/push %eax"</span>/imm32 <span id="L716" class="LineNr"> 716 </span> 68/push <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32 <span id="L717" class="LineNr"> 717 </span> <span class="subxS2Comment"># . . call</span> -<span id="L718" class="LineNr"> 718 </span> e8/call <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32 +<span id="L718" class="LineNr"> 718 </span> e8/call <a href='../058stream-equal.subx.html#L565'>check-next-stream-line-equal</a>/disp32 <span id="L719" class="LineNr"> 719 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L720" class="LineNr"> 720 </span> 81 0/subop/add %esp 0xc/imm32 <span id="L721" class="LineNr"> 721 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "e8/call foo/disp32", msg)</span> @@ -714,7 +714,7 @@ if ('onhashchange' in window) { <span id="L724" class="LineNr"> 724 </span> 68/push <span class="Constant">"e8/call foo/disp32"</span>/imm32 <span id="L725" class="LineNr"> 725 </span> 68/push <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32 <span id="L726" class="LineNr"> 726 </span> <span class="subxS2Comment"># . . call</span> -<span id="L727" class="LineNr"> 727 </span> e8/call <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32 +<span id="L727" class="LineNr"> 727 </span> e8/call <a href='../058stream-equal.subx.html#L565'>check-next-stream-line-equal</a>/disp32 <span id="L728" class="LineNr"> 728 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L729" class="LineNr"> 729 </span> 81 0/subop/add %esp 0xc/imm32 <span id="L730" class="LineNr"> 730 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "81 0/subop/add %esp 4/imm32", msg)</span> @@ -723,7 +723,7 @@ if ('onhashchange' in window) { <span id="L733" class="LineNr"> 733 </span> 68/push <span class="Constant">"81 0/subop/add %esp 0x00000004/imm32"</span>/imm32 <span id="L734" class="LineNr"> 734 </span> 68/push <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32 <span id="L735" class="LineNr"> 735 </span> <span class="subxS2Comment"># . . call</span> -<span id="L736" class="LineNr"> 736 </span> e8/call <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32 +<span id="L736" class="LineNr"> 736 </span> e8/call <a href='../058stream-equal.subx.html#L565'>check-next-stream-line-equal</a>/disp32 <span id="L737" class="LineNr"> 737 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L738" class="LineNr"> 738 </span> 81 0/subop/add %esp 0xc/imm32 <span id="L739" class="LineNr"> 739 </span> <span class="subxS1Comment"># . epilogue</span> @@ -731,7 +731,7 @@ if ('onhashchange' in window) { <span id="L741" class="LineNr"> 741 </span> 5d/pop-to-ebp <span id="L742" class="LineNr"> 742 </span> c3/return <span id="L743" class="LineNr"> 743 </span> -<span id="L744" class="LineNr"> 744 </span><span class="subxFunction">next-word-string-or-expression-without-metadata</span>: <span class="subxComment"># line : (address stream), out : (address slice)</span> +<span id="L744" class="LineNr"> 744 </span><span class="subxFunction">next-word-string-or-expression-without-metadata</span>: <span class="subxComment"># line : (address stream byte), out : (address slice)</span> <span id="L745" class="LineNr"> 745 </span> <span class="subxComment"># pseudocode:</span> <span id="L746" class="LineNr"> 746 </span> <span class="subxComment"># skip-chars-matching(line, ' ')</span> <span id="L747" class="LineNr"> 747 </span> <span class="subxComment"># if line->read >= line->write # end of line</span> @@ -820,7 +820,7 @@ if ('onhashchange' in window) { <span id="L830" class="LineNr"> 830 </span> 8d/copy-address *(esi+ecx+0xc) 0/r32/eax <span id="L831" class="LineNr"> 831 </span> 89/<- *edi 0/r32/eax <span id="L832" class="LineNr"> 832 </span> <span class="subxComment"># if (line->data[line->read] != '#') goto next check</span> -<span id="L833" class="LineNr"> 833 </span> <span class="subxS1Comment"># . eax = line->data[line->read]</span> +<span id="L833" class="LineNr"> 833 </span> <span class="subxS1Comment"># . var eax : byte = line->data[line->read]</span> <span id="L834" class="LineNr"> 834 </span> 31/xor %eax 0/r32/eax <span id="L835" class="LineNr"> 835 </span> 8a/copy-byte *(esi+ecx+0xc) 0/r32/AL <span id="L836" class="LineNr"> 836 </span> <span class="subxS1Comment"># . if (eax != '#') goto next check</span> @@ -845,7 +845,7 @@ if ('onhashchange' in window) { <span id="L855" class="LineNr"> 855 </span> <span class="subxS2Comment"># . . push args</span> <span id="L856" class="LineNr"> 856 </span> 56/push-esi <span id="L857" class="LineNr"> 857 </span> <span class="subxS2Comment"># . . call</span> -<span id="L858" class="LineNr"> 858 </span> e8/call <a href='../073next-token.subx.html#L1169'>skip-string</a>/disp32 +<span id="L858" class="LineNr"> 858 </span> e8/call <a href='../073next-token.subx.html#L1171'>skip-string</a>/disp32 <span id="L859" class="LineNr"> 859 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L860" class="LineNr"> 860 </span> 81 0/subop/add %esp 4/imm32 <span id="L861" class="LineNr"> 861 </span> <span class="subxComment"># out->end = &line->data[line->read]</span> @@ -870,7 +870,7 @@ if ('onhashchange' in window) { <span id="L880" class="LineNr"> 880 </span> <span class="subxS2Comment"># . . push args</span> <span id="L881" class="LineNr"> 881 </span> 56/push-esi <span id="L882" class="LineNr"> 882 </span> <span class="subxS2Comment"># . . call</span> -<span id="L883" class="LineNr"> 883 </span> e8/call <a href='../073next-token.subx.html#L1597'>skip-until-close-paren</a>/disp32 +<span id="L883" class="LineNr"> 883 </span> e8/call <a href='../073next-token.subx.html#L1599'>skip-until-close-paren</a>/disp32 <span id="L884" class="LineNr"> 884 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L885" class="LineNr"> 885 </span> 81 0/subop/add %esp 4/imm32 <span id="L886" class="LineNr"> 886 </span> <span class="subxComment"># if (line->data[line->read] != ')') goto error2</span> @@ -1176,19 +1176,19 @@ if ('onhashchange' in window) { <span id="L1186" class="LineNr">1186 </span> <span class="subxComment"># setup</span> <span id="L1187" class="LineNr">1187 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1188" class="LineNr">1188 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1189" class="LineNr">1189 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1189" class="LineNr">1189 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1190" class="LineNr">1190 </span> <span class="subxS2Comment"># . . call</span> <span id="L1191" class="LineNr">1191 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1192" class="LineNr">1192 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1193" class="LineNr">1193 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1194" class="LineNr">1194 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1194" class="LineNr">1194 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1195" class="LineNr">1195 </span> 68/push 0/imm32/end <span id="L1196" class="LineNr">1196 </span> 68/push 0/imm32/start <span id="L1197" class="LineNr">1197 </span> 89/<- %ecx 4/r32/esp <span id="L1198" class="LineNr">1198 </span> <span class="subxComment"># write(_test-input-stream, " ab")</span> <span id="L1199" class="LineNr">1199 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1200" class="LineNr">1200 </span> 68/push <span class="Constant">" ab"</span>/imm32 -<span id="L1201" class="LineNr">1201 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1201" class="LineNr">1201 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1202" class="LineNr">1202 </span> <span class="subxS2Comment"># . . call</span> <span id="L1203" class="LineNr">1203 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1204" class="LineNr">1204 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1196,7 +1196,7 @@ if ('onhashchange' in window) { <span id="L1206" class="LineNr">1206 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1207" class="LineNr">1207 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1208" class="LineNr">1208 </span> 51/push-ecx -<span id="L1209" class="LineNr">1209 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1209" class="LineNr">1209 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1210" class="LineNr">1210 </span> <span class="subxS2Comment"># . . call</span> <span id="L1211" class="LineNr">1211 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1212" class="LineNr">1212 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1205,7 +1205,7 @@ if ('onhashchange' in window) { <span id="L1215" class="LineNr">1215 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1216" class="LineNr">1216 </span> 68/push <span class="Constant">"F - <a href='calls.subx.html#L1182'>test-next-word-string-or-expression-without-metadata</a>/updates-stream-read-correctly"</span>/imm32 <span id="L1217" class="LineNr">1217 </span> 68/push 4/imm32 -<span id="L1218" class="LineNr">1218 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1218" class="LineNr">1218 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1219" class="LineNr">1219 </span> ff 6/subop/push *(eax+4) <span id="L1220" class="LineNr">1220 </span> <span class="subxS2Comment"># . . call</span> <span id="L1221" class="LineNr">1221 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1218,7 +1218,7 @@ if ('onhashchange' in window) { <span id="L1228" class="LineNr">1228 </span> 68/push 0xe/imm32 <span id="L1229" class="LineNr">1229 </span> <span class="subxS2Comment"># . . push slice->start - _test-input-stream</span> <span id="L1230" class="LineNr">1230 </span> 8b/-> *ecx 0/r32/eax -<span id="L1231" class="LineNr">1231 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1231" class="LineNr">1231 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1232" class="LineNr">1232 </span> 50/push-eax <span id="L1233" class="LineNr">1233 </span> <span class="subxS2Comment"># . . call</span> <span id="L1234" class="LineNr">1234 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1231,7 +1231,7 @@ if ('onhashchange' in window) { <span id="L1241" class="LineNr">1241 </span> 68/push 0x10/imm32 <span id="L1242" class="LineNr">1242 </span> <span class="subxS2Comment"># . . push slice->end - _test-input-stream</span> <span id="L1243" class="LineNr">1243 </span> 8b/-> *(ecx+4) 0/r32/eax -<span id="L1244" class="LineNr">1244 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1244" class="LineNr">1244 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1245" class="LineNr">1245 </span> 50/push-eax <span id="L1246" class="LineNr">1246 </span> <span class="subxS2Comment"># . . call</span> <span id="L1247" class="LineNr">1247 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1249,19 +1249,19 @@ if ('onhashchange' in window) { <span id="L1259" class="LineNr">1259 </span> <span class="subxComment"># setup</span> <span id="L1260" class="LineNr">1260 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1261" class="LineNr">1261 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1262" class="LineNr">1262 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1262" class="LineNr">1262 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1263" class="LineNr">1263 </span> <span class="subxS2Comment"># . . call</span> <span id="L1264" class="LineNr">1264 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1265" class="LineNr">1265 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1266" class="LineNr">1266 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1267" class="LineNr">1267 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1267" class="LineNr">1267 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1268" class="LineNr">1268 </span> 68/push 0/imm32/end <span id="L1269" class="LineNr">1269 </span> 68/push 0/imm32/start <span id="L1270" class="LineNr">1270 </span> 89/<- %ecx 4/r32/esp <span id="L1271" class="LineNr">1271 </span> <span class="subxComment"># write(_test-input-stream, " # a")</span> <span id="L1272" class="LineNr">1272 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1273" class="LineNr">1273 </span> 68/push <span class="Constant">" # a"</span>/imm32 -<span id="L1274" class="LineNr">1274 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1274" class="LineNr">1274 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1275" class="LineNr">1275 </span> <span class="subxS2Comment"># . . call</span> <span id="L1276" class="LineNr">1276 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1277" class="LineNr">1277 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1269,7 +1269,7 @@ if ('onhashchange' in window) { <span id="L1279" class="LineNr">1279 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1280" class="LineNr">1280 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1281" class="LineNr">1281 </span> 51/push-ecx -<span id="L1282" class="LineNr">1282 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1282" class="LineNr">1282 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1283" class="LineNr">1283 </span> <span class="subxS2Comment"># . . call</span> <span id="L1284" class="LineNr">1284 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1285" class="LineNr">1285 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1278,7 +1278,7 @@ if ('onhashchange' in window) { <span id="L1288" class="LineNr">1288 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1289" class="LineNr">1289 </span> 68/push <span class="Constant">"F - <a href='calls.subx.html#L1255'>test-next-word-string-or-expression-without-metadata-returns-whole-comment</a>/updates-stream-read-correctly"</span>/imm32 <span id="L1290" class="LineNr">1290 </span> 68/push 5/imm32 -<span id="L1291" class="LineNr">1291 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1291" class="LineNr">1291 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1292" class="LineNr">1292 </span> ff 6/subop/push *(eax+4) <span id="L1293" class="LineNr">1293 </span> <span class="subxS2Comment"># . . call</span> <span id="L1294" class="LineNr">1294 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1291,7 +1291,7 @@ if ('onhashchange' in window) { <span id="L1301" class="LineNr">1301 </span> 68/push 0xe/imm32 <span id="L1302" class="LineNr">1302 </span> <span class="subxS2Comment"># . . push slice->start - _test-input-stream</span> <span id="L1303" class="LineNr">1303 </span> 8b/-> *ecx 0/r32/eax -<span id="L1304" class="LineNr">1304 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1304" class="LineNr">1304 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1305" class="LineNr">1305 </span> 50/push-eax <span id="L1306" class="LineNr">1306 </span> <span class="subxS2Comment"># . . call</span> <span id="L1307" class="LineNr">1307 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1304,7 +1304,7 @@ if ('onhashchange' in window) { <span id="L1314" class="LineNr">1314 </span> 68/push 0x11/imm32 <span id="L1315" class="LineNr">1315 </span> <span class="subxS2Comment"># . . push slice->end - _test-input-stream</span> <span id="L1316" class="LineNr">1316 </span> 8b/-> *(ecx+4) 0/r32/eax -<span id="L1317" class="LineNr">1317 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1317" class="LineNr">1317 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1318" class="LineNr">1318 </span> 50/push-eax <span id="L1319" class="LineNr">1319 </span> <span class="subxS2Comment"># . . call</span> <span id="L1320" class="LineNr">1320 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1322,12 +1322,12 @@ if ('onhashchange' in window) { <span id="L1332" class="LineNr">1332 </span> <span class="subxComment"># setup</span> <span id="L1333" class="LineNr">1333 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1334" class="LineNr">1334 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1335" class="LineNr">1335 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1335" class="LineNr">1335 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1336" class="LineNr">1336 </span> <span class="subxS2Comment"># . . call</span> <span id="L1337" class="LineNr">1337 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1338" class="LineNr">1338 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1339" class="LineNr">1339 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1340" class="LineNr">1340 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1340" class="LineNr">1340 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1341" class="LineNr">1341 </span> 68/push 0/imm32/end <span id="L1342" class="LineNr">1342 </span> 68/push 0/imm32/start <span id="L1343" class="LineNr">1343 </span> 89/<- %ecx 4/r32/esp @@ -1335,7 +1335,7 @@ if ('onhashchange' in window) { <span id="L1345" class="LineNr">1345 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1346" class="LineNr">1346 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1347" class="LineNr">1347 </span> 51/push-ecx -<span id="L1348" class="LineNr">1348 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1348" class="LineNr">1348 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1349" class="LineNr">1349 </span> <span class="subxS2Comment"># . . call</span> <span id="L1350" class="LineNr">1350 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1351" class="LineNr">1351 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1364,19 +1364,19 @@ if ('onhashchange' in window) { <span id="L1374" class="LineNr">1374 </span> <span class="subxComment"># setup</span> <span id="L1375" class="LineNr">1375 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1376" class="LineNr">1376 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1377" class="LineNr">1377 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1377" class="LineNr">1377 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1378" class="LineNr">1378 </span> <span class="subxS2Comment"># . . call</span> <span id="L1379" class="LineNr">1379 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1380" class="LineNr">1380 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1381" class="LineNr">1381 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1382" class="LineNr">1382 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1382" class="LineNr">1382 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1383" class="LineNr">1383 </span> 68/push 0/imm32/end <span id="L1384" class="LineNr">1384 </span> 68/push 0/imm32/start <span id="L1385" class="LineNr">1385 </span> 89/<- %ecx 4/r32/esp <span id="L1386" class="LineNr">1386 </span> <span class="subxComment"># write(_test-input-stream, " \"a b\" ")</span> <span id="L1387" class="LineNr">1387 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1388" class="LineNr">1388 </span> 68/push <span class="Constant">" \"</span>a b\<span class="Constant">" "</span>/imm32 -<span id="L1389" class="LineNr">1389 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1389" class="LineNr">1389 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1390" class="LineNr">1390 </span> <span class="subxS2Comment"># . . call</span> <span id="L1391" class="LineNr">1391 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1392" class="LineNr">1392 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1384,7 +1384,7 @@ if ('onhashchange' in window) { <span id="L1394" class="LineNr">1394 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1395" class="LineNr">1395 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1396" class="LineNr">1396 </span> 51/push-ecx -<span id="L1397" class="LineNr">1397 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1397" class="LineNr">1397 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1398" class="LineNr">1398 </span> <span class="subxS2Comment"># . . call</span> <span id="L1399" class="LineNr">1399 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1400" class="LineNr">1400 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1396,7 +1396,7 @@ if ('onhashchange' in window) { <span id="L1406" class="LineNr">1406 </span> 68/push 0xd/imm32 <span id="L1407" class="LineNr">1407 </span> <span class="subxS2Comment"># . . push slice->start - _test-input-stream</span> <span id="L1408" class="LineNr">1408 </span> 8b/-> *ecx 0/r32/eax -<span id="L1409" class="LineNr">1409 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1409" class="LineNr">1409 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1410" class="LineNr">1410 </span> 50/push-eax <span id="L1411" class="LineNr">1411 </span> <span class="subxS2Comment"># . . call</span> <span id="L1412" class="LineNr">1412 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1409,7 +1409,7 @@ if ('onhashchange' in window) { <span id="L1419" class="LineNr">1419 </span> 68/push 0x12/imm32 <span id="L1420" class="LineNr">1420 </span> <span class="subxS2Comment"># . . push slice->end - _test-input-stream</span> <span id="L1421" class="LineNr">1421 </span> 8b/-> *(ecx+4) 0/r32/eax -<span id="L1422" class="LineNr">1422 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1422" class="LineNr">1422 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1423" class="LineNr">1423 </span> 50/push-eax <span id="L1424" class="LineNr">1424 </span> <span class="subxS2Comment"># . . call</span> <span id="L1425" class="LineNr">1425 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1427,19 +1427,19 @@ if ('onhashchange' in window) { <span id="L1437" class="LineNr">1437 </span> <span class="subxComment"># setup</span> <span id="L1438" class="LineNr">1438 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1439" class="LineNr">1439 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1440" class="LineNr">1440 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1440" class="LineNr">1440 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1441" class="LineNr">1441 </span> <span class="subxS2Comment"># . . call</span> <span id="L1442" class="LineNr">1442 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1443" class="LineNr">1443 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1444" class="LineNr">1444 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1445" class="LineNr">1445 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1445" class="LineNr">1445 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1446" class="LineNr">1446 </span> 68/push 0/imm32/end <span id="L1447" class="LineNr">1447 </span> 68/push 0/imm32/start <span id="L1448" class="LineNr">1448 </span> 89/<- %ecx 4/r32/esp <span id="L1449" class="LineNr">1449 </span> <span class="subxComment"># write(_test-input-stream, " \"a\\\"b\"")</span> <span id="L1450" class="LineNr">1450 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1451" class="LineNr">1451 </span> 68/push <span class="Constant">" \"</span>a\\\<span class="Constant">"b\"</span>"/imm32 -<span id="L1452" class="LineNr">1452 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1452" class="LineNr">1452 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1453" class="LineNr">1453 </span> <span class="subxS2Comment"># . . call</span> <span id="L1454" class="LineNr">1454 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1455" class="LineNr">1455 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1447,7 +1447,7 @@ if ('onhashchange' in window) { <span id="L1457" class="LineNr">1457 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1458" class="LineNr">1458 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1459" class="LineNr">1459 </span> 51/push-ecx -<span id="L1460" class="LineNr">1460 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1460" class="LineNr">1460 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1461" class="LineNr">1461 </span> <span class="subxS2Comment"># . . call</span> <span id="L1462" class="LineNr">1462 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1463" class="LineNr">1463 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1459,7 +1459,7 @@ if ('onhashchange' in window) { <span id="L1469" class="LineNr">1469 </span> 68/push 0xd/imm32 <span id="L1470" class="LineNr">1470 </span> <span class="subxS2Comment"># . . push slice->start - _test-input-stream</span> <span id="L1471" class="LineNr">1471 </span> 8b/-> *ecx 0/r32/eax -<span id="L1472" class="LineNr">1472 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1472" class="LineNr">1472 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1473" class="LineNr">1473 </span> 50/push-eax <span id="L1474" class="LineNr">1474 </span> <span class="subxS2Comment"># . . call</span> <span id="L1475" class="LineNr">1475 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1472,7 +1472,7 @@ if ('onhashchange' in window) { <span id="L1482" class="LineNr">1482 </span> 68/push 0x13/imm32 <span id="L1483" class="LineNr">1483 </span> <span class="subxS2Comment"># . . push slice->end - _test-input-stream</span> <span id="L1484" class="LineNr">1484 </span> 8b/-> *(ecx+4) 0/r32/eax -<span id="L1485" class="LineNr">1485 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1485" class="LineNr">1485 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1486" class="LineNr">1486 </span> 50/push-eax <span id="L1487" class="LineNr">1487 </span> <span class="subxS2Comment"># . . call</span> <span id="L1488" class="LineNr">1488 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1490,19 +1490,19 @@ if ('onhashchange' in window) { <span id="L1500" class="LineNr">1500 </span> <span class="subxComment"># setup</span> <span id="L1501" class="LineNr">1501 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1502" class="LineNr">1502 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1503" class="LineNr">1503 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1503" class="LineNr">1503 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1504" class="LineNr">1504 </span> <span class="subxS2Comment"># . . call</span> <span id="L1505" class="LineNr">1505 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1506" class="LineNr">1506 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1507" class="LineNr">1507 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1508" class="LineNr">1508 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1508" class="LineNr">1508 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1509" class="LineNr">1509 </span> 68/push 0/imm32/end <span id="L1510" class="LineNr">1510 </span> 68/push 0/imm32/start <span id="L1511" class="LineNr">1511 </span> 89/<- %ecx 4/r32/esp <span id="L1512" class="LineNr">1512 </span> <span class="subxComment"># write(_test-input-stream, " *(a b) ")</span> <span id="L1513" class="LineNr">1513 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1514" class="LineNr">1514 </span> 68/push <span class="Constant">" *(a b) "</span>/imm32 -<span id="L1515" class="LineNr">1515 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1515" class="LineNr">1515 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1516" class="LineNr">1516 </span> <span class="subxS2Comment"># . . call</span> <span id="L1517" class="LineNr">1517 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1518" class="LineNr">1518 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1510,7 +1510,7 @@ if ('onhashchange' in window) { <span id="L1520" class="LineNr">1520 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1521" class="LineNr">1521 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1522" class="LineNr">1522 </span> 51/push-ecx -<span id="L1523" class="LineNr">1523 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1523" class="LineNr">1523 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1524" class="LineNr">1524 </span> <span class="subxS2Comment"># . . call</span> <span id="L1525" class="LineNr">1525 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1526" class="LineNr">1526 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1522,7 +1522,7 @@ if ('onhashchange' in window) { <span id="L1532" class="LineNr">1532 </span> 68/push 0xd/imm32 <span id="L1533" class="LineNr">1533 </span> <span class="subxS2Comment"># . . push slice->start - _test-input-stream</span> <span id="L1534" class="LineNr">1534 </span> 8b/-> *ecx 0/r32/eax -<span id="L1535" class="LineNr">1535 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1535" class="LineNr">1535 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1536" class="LineNr">1536 </span> 50/push-eax <span id="L1537" class="LineNr">1537 </span> <span class="subxS2Comment"># . . call</span> <span id="L1538" class="LineNr">1538 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1535,7 +1535,7 @@ if ('onhashchange' in window) { <span id="L1545" class="LineNr">1545 </span> 68/push 0x13/imm32 <span id="L1546" class="LineNr">1546 </span> <span class="subxS2Comment"># . . push slice->end - _test-input-stream</span> <span id="L1547" class="LineNr">1547 </span> 8b/-> *(ecx+4) 0/r32/eax -<span id="L1548" class="LineNr">1548 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1548" class="LineNr">1548 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1549" class="LineNr">1549 </span> 50/push-eax <span id="L1550" class="LineNr">1550 </span> <span class="subxS2Comment"># . . call</span> <span id="L1551" class="LineNr">1551 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1553,19 +1553,19 @@ if ('onhashchange' in window) { <span id="L1563" class="LineNr">1563 </span> <span class="subxComment"># setup</span> <span id="L1564" class="LineNr">1564 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1565" class="LineNr">1565 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1566" class="LineNr">1566 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1566" class="LineNr">1566 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1567" class="LineNr">1567 </span> <span class="subxS2Comment"># . . call</span> <span id="L1568" class="LineNr">1568 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1569" class="LineNr">1569 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1570" class="LineNr">1570 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1571" class="LineNr">1571 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1571" class="LineNr">1571 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1572" class="LineNr">1572 </span> 68/push 0/imm32/end <span id="L1573" class="LineNr">1573 </span> 68/push 0/imm32/start <span id="L1574" class="LineNr">1574 </span> 89/<- %ecx 4/r32/esp <span id="L1575" class="LineNr">1575 </span> <span class="subxComment"># write(_test-input-stream, " ) ")</span> <span id="L1576" class="LineNr">1576 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1577" class="LineNr">1577 </span> 68/push <span class="Constant">" ) "</span>/imm32 -<span id="L1578" class="LineNr">1578 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1578" class="LineNr">1578 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1579" class="LineNr">1579 </span> <span class="subxS2Comment"># . . call</span> <span id="L1580" class="LineNr">1580 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1581" class="LineNr">1581 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1573,7 +1573,7 @@ if ('onhashchange' in window) { <span id="L1583" class="LineNr">1583 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1584" class="LineNr">1584 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1585" class="LineNr">1585 </span> 51/push-ecx -<span id="L1586" class="LineNr">1586 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1586" class="LineNr">1586 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1587" class="LineNr">1587 </span> <span class="subxS2Comment"># . . call</span> <span id="L1588" class="LineNr">1588 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1589" class="LineNr">1589 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1608,19 +1608,19 @@ if ('onhashchange' in window) { <span id="L1618" class="LineNr">1618 </span> <span class="subxComment"># setup</span> <span id="L1619" class="LineNr">1619 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1620" class="LineNr">1620 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1621" class="LineNr">1621 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1621" class="LineNr">1621 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1622" class="LineNr">1622 </span> <span class="subxS2Comment"># . . call</span> <span id="L1623" class="LineNr">1623 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1624" class="LineNr">1624 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1625" class="LineNr">1625 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1626" class="LineNr">1626 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1626" class="LineNr">1626 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1627" class="LineNr">1627 </span> 68/push 0/imm32/end <span id="L1628" class="LineNr">1628 </span> 68/push 0/imm32/start <span id="L1629" class="LineNr">1629 </span> 89/<- %ecx 4/r32/esp <span id="L1630" class="LineNr">1630 </span> <span class="subxComment"># write(_test-input-stream, " ) # abc ")</span> <span id="L1631" class="LineNr">1631 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1632" class="LineNr">1632 </span> 68/push <span class="Constant">" ) # abc "</span>/imm32 -<span id="L1633" class="LineNr">1633 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1633" class="LineNr">1633 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1634" class="LineNr">1634 </span> <span class="subxS2Comment"># . . call</span> <span id="L1635" class="LineNr">1635 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1636" class="LineNr">1636 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1628,7 +1628,7 @@ if ('onhashchange' in window) { <span id="L1638" class="LineNr">1638 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1639" class="LineNr">1639 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1640" class="LineNr">1640 </span> 51/push-ecx -<span id="L1641" class="LineNr">1641 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1641" class="LineNr">1641 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1642" class="LineNr">1642 </span> <span class="subxS2Comment"># . . call</span> <span id="L1643" class="LineNr">1643 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1644" class="LineNr">1644 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1663,19 +1663,19 @@ if ('onhashchange' in window) { <span id="L1673" class="LineNr">1673 </span> <span class="subxComment"># setup</span> <span id="L1674" class="LineNr">1674 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1675" class="LineNr">1675 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1676" class="LineNr">1676 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1676" class="LineNr">1676 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1677" class="LineNr">1677 </span> <span class="subxS2Comment"># . . call</span> <span id="L1678" class="LineNr">1678 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1679" class="LineNr">1679 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1680" class="LineNr">1680 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1681" class="LineNr">1681 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1681" class="LineNr">1681 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1682" class="LineNr">1682 </span> 68/push 0/imm32/end <span id="L1683" class="LineNr">1683 </span> 68/push 0/imm32/start <span id="L1684" class="LineNr">1684 </span> 89/<- %ecx 4/r32/esp <span id="L1685" class="LineNr">1685 </span> <span class="subxComment"># write(_test-input-stream, " )\n")</span> <span id="L1686" class="LineNr">1686 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1687" class="LineNr">1687 </span> 68/push <span class="Constant">" )\n"</span>/imm32 -<span id="L1688" class="LineNr">1688 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1688" class="LineNr">1688 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1689" class="LineNr">1689 </span> <span class="subxS2Comment"># . . call</span> <span id="L1690" class="LineNr">1690 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1691" class="LineNr">1691 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1683,7 +1683,7 @@ if ('onhashchange' in window) { <span id="L1693" class="LineNr">1693 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1694" class="LineNr">1694 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1695" class="LineNr">1695 </span> 51/push-ecx -<span id="L1696" class="LineNr">1696 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1696" class="LineNr">1696 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1697" class="LineNr">1697 </span> <span class="subxS2Comment"># . . call</span> <span id="L1698" class="LineNr">1698 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1699" class="LineNr">1699 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1718,19 +1718,19 @@ if ('onhashchange' in window) { <span id="L1728" class="LineNr">1728 </span> <span class="subxComment"># setup</span> <span id="L1729" class="LineNr">1729 </span> <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span> <span id="L1730" class="LineNr">1730 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L1731" class="LineNr">1731 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1731" class="LineNr">1731 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1732" class="LineNr">1732 </span> <span class="subxS2Comment"># . . call</span> <span id="L1733" class="LineNr">1733 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1734" class="LineNr">1734 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1735" class="LineNr">1735 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1736" class="LineNr">1736 </span> <span class="subxComment"># var slice/ecx = {0, 0}</span> +<span id="L1736" class="LineNr">1736 </span> <span class="subxComment"># var slice/ecx : (ref slice)</span> <span id="L1737" class="LineNr">1737 </span> 68/push 0/imm32/end <span id="L1738" class="LineNr">1738 </span> 68/push 0/imm32/start <span id="L1739" class="LineNr">1739 </span> 89/<- %ecx 4/r32/esp <span id="L1740" class="LineNr">1740 </span> <span class="subxComment"># write(_test-input-stream, " abc) # def")</span> <span id="L1741" class="LineNr">1741 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1742" class="LineNr">1742 </span> 68/push <span class="Constant">" abc) # def"</span>/imm32 -<span id="L1743" class="LineNr">1743 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1743" class="LineNr">1743 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1744" class="LineNr">1744 </span> <span class="subxS2Comment"># . . call</span> <span id="L1745" class="LineNr">1745 </span> e8/call <a href='../057write.subx.html#L24'>write</a>/disp32 <span id="L1746" class="LineNr">1746 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1738,7 +1738,7 @@ if ('onhashchange' in window) { <span id="L1748" class="LineNr">1748 </span> <span class="subxComment"># next-word-string-or-expression-without-metadata(_test-input-stream, slice)</span> <span id="L1749" class="LineNr">1749 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1750" class="LineNr">1750 </span> 51/push-ecx -<span id="L1751" class="LineNr">1751 </span> 68/push <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1751" class="LineNr">1751 </span> 68/push <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1752" class="LineNr">1752 </span> <span class="subxS2Comment"># . . call</span> <span id="L1753" class="LineNr">1753 </span> e8/call <a href='calls.subx.html#L744'>next-word-string-or-expression-without-metadata</a>/disp32 <span id="L1754" class="LineNr">1754 </span> <span class="subxS2Comment"># . . discard args</span> @@ -1750,7 +1750,7 @@ if ('onhashchange' in window) { <span id="L1760" class="LineNr">1760 </span> 68/push 0xd/imm32 <span id="L1761" class="LineNr">1761 </span> <span class="subxS2Comment"># . . push slice->start - _test-input-stream</span> <span id="L1762" class="LineNr">1762 </span> 8b/-> *ecx 0/r32/eax -<span id="L1763" class="LineNr">1763 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1763" class="LineNr">1763 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1764" class="LineNr">1764 </span> 50/push-eax <span id="L1765" class="LineNr">1765 </span> <span class="subxS2Comment"># . . call</span> <span id="L1766" class="LineNr">1766 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 @@ -1763,7 +1763,7 @@ if ('onhashchange' in window) { <span id="L1773" class="LineNr">1773 </span> 68/push 0x10/imm32 <span id="L1774" class="LineNr">1774 </span> <span class="subxS2Comment"># . . push slice->end - _test-input-stream</span> <span id="L1775" class="LineNr">1775 </span> 8b/-> *(ecx+4) 0/r32/eax -<span id="L1776" class="LineNr">1776 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32 +<span id="L1776" class="LineNr">1776 </span> 81 5/subop/subtract %eax <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span id="L1777" class="LineNr">1777 </span> 50/push-eax <span id="L1778" class="LineNr">1778 </span> <span class="subxS2Comment"># . . call</span> <span id="L1779" class="LineNr">1779 </span> e8/call <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32 |