From 8aeb85f04ee68b960a6d326aca1a17dec2f6d019 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Mon, 9 Dec 2019 01:26:58 -0800 Subject: 5806 --- html/apps/calls.subx.html | 194 +++++++++++++++++++++++----------------------- 1 file changed, 97 insertions(+), 97 deletions(-) (limited to 'html/apps/calls.subx.html') 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) { 48 68/push "test"/imm32 49 ff 6/subop/push *(ebp+8) 50 # . . call - 51 e8/call kernel-string-equal?/disp32 + 51 e8/call kernel-string-equal?/disp32 52 # . . discard args 53 81 0/subop/add %esp 8/imm32 - 54 # . if (eax == 0) goto run-main - 55 3d/compare-eax-and 0/imm32 + 54 # . if (eax == false) goto run-main + 55 3d/compare-eax-and 0/imm32/false 56 74/jump-if-equal $subx-calls-main:interactive/disp8 57 # run-tests() 58 e8/call run-tests/disp32 @@ -138,8 +138,8 @@ if ('onhashchange' in window) { 77 78 subx-calls: # in : (address buffered-file), out : (address buffered-file) 79 # pseudocode: - 80 # var line : (stream byte 512) - 81 # var words : (stream slice 16) # at most function name and 15 args + 80 # var line : (ref stream byte 512) + 81 # var words : (ref stream slice 16) # at most function name and 15 args 82 # while true 83 # clear-stream(line) 84 # read-line-buffered(in, line) @@ -166,13 +166,13 @@ if ('onhashchange' in window) { 105 51/push-ecx 106 52/push-edx 107 56/push-esi - 108 # var line/esi : (address stream byte) = stream(512) + 108 # var line/esi : (ref stream byte 512) 109 81 5/subop/subtract %esp 0x200/imm32 110 68/push 0x200/imm32/length 111 68/push 0/imm32/read 112 68/push 0/imm32/write 113 89/<- %esi 4/r32/esp - 114 # var words/edx : (address stream slice) = stream(16, 8) + 114 # var words/edx : (ref stream slice 128) # 16 rows * 8 bytes/row 115 81 5/subop/subtract %esp 0x80/imm32 116 68/push 0x80/imm32/length 117 68/push 0/imm32/read @@ -294,7 +294,7 @@ if ('onhashchange' in window) { 233 234 parse-line: # line : (address stream byte), words : (address stream slice) 235 # pseudocode: - 236 # var word-slice : (address slice) + 236 # var word-slice : (ref slice) 237 # while true 238 # word-slice = next-word-string-or-expression-without-metadata(line) 239 # if slice-empty?(word-slice) @@ -307,7 +307,7 @@ if ('onhashchange' in window) { 246 89/<- %ebp 4/r32/esp 247 # . save registers 248 51/push-ecx - 249 # var word-slice/ecx : (address slice) = {0, 0} + 249 # var word-slice/ecx : (ref slice) 250 68/push 0/imm32/end 251 68/push 0/imm32/start 252 89/<- %ecx 4/r32/esp @@ -329,8 +329,8 @@ if ('onhashchange' in window) { 268 e8/call slice-empty?/disp32 269 # . . discard args 270 81 0/subop/add %esp 4/imm32 - 271 # . if (eax != 0) break - 272 3d/compare-eax-and 0/imm32 + 271 # . if (eax != false) break + 272 3d/compare-eax-and 0/imm32/false 273 0f 85/jump-if-not-equal $parse-line:end/disp32 274 +-- 40 lines: #? # dump word-slice ----------------------------------------------------------------------------------------------------------------------- 314 $parse-line:write-word: @@ -403,9 +403,9 @@ if ('onhashchange' in window) { 381 8b/-> *esi 1/r32/ecx 382 81 5/subop/subtract %ecx 8/imm32 383 0f 8c/jump-if-lesser $emit-call:error1/disp32 - 384 # curr/ecx = &words->data[words->write-8] + 384 # var curr/ecx : (address slice) = &words->data[words->write-8] 385 8d/copy-address *(esi+ecx+0xc) 1/r32/ecx - 386 # min/edx = words->data + 386 # var min/edx : (address byte) = words->data 387 8d/copy-address *(esi+0xc) 2/r32/edx 388 # - emit pushes 389 $emit-call:push-loop: @@ -413,15 +413,15 @@ if ('onhashchange' in window) { 391 39/compare %ecx 2/r32/edx 392 0f 8e/jump-if-lesser-or-equal $emit-call:call-instruction/disp32 393 # if (*curr->start in '%' '*') goto push-rm32 - 394 # . eax = curr->start + 394 # . var start/eax : (address byte) = curr->start 395 8b/-> *ecx 0/r32/eax - 396 # . eax = (byte)*eax + 396 # . var c/eax : byte = *eax 397 8b/-> *eax 0/r32/eax 398 81 4/subop/and %eax 0xff/imm32 - 399 # . if (eax == '%') goto push-rm32 + 399 # . if (c == '%') goto push-rm32 400 3d/compare-eax-and 0x25/imm32/percent 401 74/jump-if-equal $emit-call:push-rm32/disp8 - 402 # . if (eax == '*') goto push-rm32 + 402 # . if (c == '*') goto push-rm32 403 3d/compare-eax-and 0x2a/imm32/asterisk 404 74/jump-if-equal $emit-call:push-rm32/disp8 405 $emit-call:push-imm32: @@ -437,7 +437,7 @@ if ('onhashchange' in window) { 415 51/push-ecx 416 ff 6/subop/push *(ebp+8) 417 # . . call - 418 e8/call write-slice-buffered/disp32 + 418 e8/call write-slice-buffered/disp32 419 # . . discard args 420 81 0/subop/add %esp 8/imm32 421 # write-buffered(out, "/imm32\n") @@ -463,7 +463,7 @@ if ('onhashchange' in window) { 441 51/push-ecx 442 ff 6/subop/push *(ebp+8) 443 # . . call - 444 e8/call write-slice-buffered/disp32 + 444 e8/call write-slice-buffered/disp32 445 # . . discard args 446 81 0/subop/add %esp 8/imm32 447 # write-buffered(out, "\n") @@ -491,7 +491,7 @@ if ('onhashchange' in window) { 469 51/push-ecx 470 ff 6/subop/push *(ebp+8) 471 # . . call - 472 e8/call write-slice-buffered/disp32 + 472 e8/call write-slice-buffered/disp32 473 # . . discard args 474 81 0/subop/add %esp 8/imm32 475 # write-buffered(out, "/disp32\n") @@ -517,7 +517,7 @@ if ('onhashchange' in window) { 495 50/push-eax 496 ff 6/subop/push *(ebp+8) 497 # . . call - 498 e8/call print-int32-buffered/disp32 + 498 e8/call print-int32-buffered/disp32 499 # . . discard args 500 81 0/subop/add %esp 8/imm32 501 # write-buffered(out, "/imm32\n") @@ -568,14 +568,14 @@ if ('onhashchange' in window) { 546 # setup 547 # . clear-stream(_test-input-stream) 548 # . . push args - 549 68/push _test-input-stream/imm32 + 549 68/push _test-input-stream/imm32 550 # . . call 551 e8/call clear-stream/disp32 552 # . . discard args 553 81 0/subop/add %esp 4/imm32 - 554 # . clear-stream(_test-input-buffered-file->buffer) + 554 # . clear-stream($_test-input-buffered-file->buffer) 555 # . . push args - 556 68/push _test-input-buffered-file->buffer/imm32 + 556 68/push $_test-input-buffered-file->buffer/imm32 557 # . . call 558 e8/call clear-stream/disp32 559 # . . discard args @@ -587,9 +587,9 @@ if ('onhashchange' in window) { 565 e8/call clear-stream/disp32 566 # . . discard args 567 81 0/subop/add %esp 4/imm32 - 568 # . clear-stream(_test-output-buffered-file->buffer) + 568 # . clear-stream($_test-output-buffered-file->buffer) 569 # . . push args - 570 68/push _test-output-buffered-file->buffer/imm32 + 570 68/push $_test-output-buffered-file->buffer/imm32 571 # . . call 572 e8/call clear-stream/disp32 573 # . . discard args @@ -597,7 +597,7 @@ if ('onhashchange' in window) { 575 # . write(_test-input-stream, "== abcd 0x1\n") 576 # . . push args 577 68/push "== abcd 0x1\n"/imm32 - 578 68/push _test-input-stream/imm32 + 578 68/push _test-input-stream/imm32 579 # . . call 580 e8/call write/disp32 581 # . . discard args @@ -605,7 +605,7 @@ if ('onhashchange' in window) { 583 # subx-calls(_test-input-buffered-file, _test-output-buffered-file) 584 # . . push args 585 68/push _test-output-buffered-file/imm32 - 586 68/push _test-input-buffered-file/imm32 + 586 68/push _test-input-buffered-file/imm32 587 # . . call 588 e8/call subx-calls/disp32 589 # . . discard args @@ -624,7 +624,7 @@ if ('onhashchange' in window) { 602 68/push "== abcd 0x1\n"/imm32 603 68/push _test-output-stream/imm32 604 # . . call - 605 e8/call check-stream-equal/disp32 + 605 e8/call check-stream-equal/disp32 606 # . . discard args 607 81 0/subop/add %esp 0xc/imm32 608 # . epilogue @@ -639,14 +639,14 @@ if ('onhashchange' in window) { 617 # setup 618 # . clear-stream(_test-input-stream) 619 # . . push args - 620 68/push _test-input-stream/imm32 + 620 68/push _test-input-stream/imm32 621 # . . call 622 e8/call clear-stream/disp32 623 # . . discard args 624 81 0/subop/add %esp 4/imm32 - 625 # . clear-stream(_test-input-buffered-file->buffer) + 625 # . clear-stream($_test-input-buffered-file->buffer) 626 # . . push args - 627 68/push _test-input-buffered-file->buffer/imm32 + 627 68/push $_test-input-buffered-file->buffer/imm32 628 # . . call 629 e8/call clear-stream/disp32 630 # . . discard args @@ -658,9 +658,9 @@ if ('onhashchange' in window) { 636 e8/call clear-stream/disp32 637 # . . discard args 638 81 0/subop/add %esp 4/imm32 - 639 # . clear-stream(_test-output-buffered-file->buffer) + 639 # . clear-stream($_test-output-buffered-file->buffer) 640 # . . push args - 641 68/push _test-output-buffered-file->buffer/imm32 + 641 68/push $_test-output-buffered-file->buffer/imm32 642 # . . call 643 e8/call clear-stream/disp32 644 # . . discard args @@ -668,7 +668,7 @@ if ('onhashchange' in window) { 646 # . write(_test-input-stream, "(foo %eax)\n") 647 # . . push args 648 68/push "(foo %eax)\n"/imm32 - 649 68/push _test-input-stream/imm32 + 649 68/push _test-input-stream/imm32 650 # . . call 651 e8/call write/disp32 652 # . . discard args @@ -676,7 +676,7 @@ if ('onhashchange' in window) { 654 # subx-calls(_test-input-buffered-file, _test-output-buffered-file) 655 # . . push args 656 68/push _test-output-buffered-file/imm32 - 657 68/push _test-input-buffered-file/imm32 + 657 68/push _test-input-buffered-file/imm32 658 # . . call 659 e8/call subx-calls/disp32 660 # . . discard args @@ -696,7 +696,7 @@ if ('onhashchange' in window) { 706 68/push "# . (foo %eax)"/imm32 707 68/push _test-output-stream/imm32 708 # . . call - 709 e8/call check-next-stream-line-equal/disp32 + 709 e8/call check-next-stream-line-equal/disp32 710 # . . discard args 711 81 0/subop/add %esp 0xc/imm32 712 # . check-next-stream-line-equal(_test-output-stream, "ff 6/subop/push %eax", msg) @@ -705,7 +705,7 @@ if ('onhashchange' in window) { 715 68/push "ff 6/subop/push %eax"/imm32 716 68/push _test-output-stream/imm32 717 # . . call - 718 e8/call check-next-stream-line-equal/disp32 + 718 e8/call check-next-stream-line-equal/disp32 719 # . . discard args 720 81 0/subop/add %esp 0xc/imm32 721 # . check-next-stream-line-equal(_test-output-stream, "e8/call foo/disp32", msg) @@ -714,7 +714,7 @@ if ('onhashchange' in window) { 724 68/push "e8/call foo/disp32"/imm32 725 68/push _test-output-stream/imm32 726 # . . call - 727 e8/call check-next-stream-line-equal/disp32 + 727 e8/call check-next-stream-line-equal/disp32 728 # . . discard args 729 81 0/subop/add %esp 0xc/imm32 730 # . check-next-stream-line-equal(_test-output-stream, "81 0/subop/add %esp 4/imm32", msg) @@ -723,7 +723,7 @@ if ('onhashchange' in window) { 733 68/push "81 0/subop/add %esp 0x00000004/imm32"/imm32 734 68/push _test-output-stream/imm32 735 # . . call - 736 e8/call check-next-stream-line-equal/disp32 + 736 e8/call check-next-stream-line-equal/disp32 737 # . . discard args 738 81 0/subop/add %esp 0xc/imm32 739 # . epilogue @@ -731,7 +731,7 @@ if ('onhashchange' in window) { 741 5d/pop-to-ebp 742 c3/return 743 - 744 next-word-string-or-expression-without-metadata: # line : (address stream), out : (address slice) + 744 next-word-string-or-expression-without-metadata: # line : (address stream byte), out : (address slice) 745 # pseudocode: 746 # skip-chars-matching(line, ' ') 747 # if line->read >= line->write # end of line @@ -820,7 +820,7 @@ if ('onhashchange' in window) { 830 8d/copy-address *(esi+ecx+0xc) 0/r32/eax 831 89/<- *edi 0/r32/eax 832 # if (line->data[line->read] != '#') goto next check - 833 # . eax = line->data[line->read] + 833 # . var eax : byte = line->data[line->read] 834 31/xor %eax 0/r32/eax 835 8a/copy-byte *(esi+ecx+0xc) 0/r32/AL 836 # . if (eax != '#') goto next check @@ -845,7 +845,7 @@ if ('onhashchange' in window) { 855 # . . push args 856 56/push-esi 857 # . . call - 858 e8/call skip-string/disp32 + 858 e8/call skip-string/disp32 859 # . . discard args 860 81 0/subop/add %esp 4/imm32 861 # out->end = &line->data[line->read] @@ -870,7 +870,7 @@ if ('onhashchange' in window) { 880 # . . push args 881 56/push-esi 882 # . . call - 883 e8/call skip-until-close-paren/disp32 + 883 e8/call skip-until-close-paren/disp32 884 # . . discard args 885 81 0/subop/add %esp 4/imm32 886 # if (line->data[line->read] != ')') goto error2 @@ -1176,19 +1176,19 @@ if ('onhashchange' in window) { 1186 # setup 1187 # . clear-stream(_test-input-stream) 1188 # . . push args -1189 68/push _test-input-stream/imm32 +1189 68/push _test-input-stream/imm32 1190 # . . call 1191 e8/call clear-stream/disp32 1192 # . . discard args 1193 81 0/subop/add %esp 4/imm32 -1194 # var slice/ecx = {0, 0} +1194 # var slice/ecx : (ref slice) 1195 68/push 0/imm32/end 1196 68/push 0/imm32/start 1197 89/<- %ecx 4/r32/esp 1198 # write(_test-input-stream, " ab") 1199 # . . push args 1200 68/push " ab"/imm32 -1201 68/push _test-input-stream/imm32 +1201 68/push _test-input-stream/imm32 1202 # . . call 1203 e8/call write/disp32 1204 # . . discard args @@ -1196,7 +1196,7 @@ if ('onhashchange' in window) { 1206 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1207 # . . push args 1208 51/push-ecx -1209 68/push _test-input-stream/imm32 +1209 68/push _test-input-stream/imm32 1210 # . . call 1211 e8/call next-word-string-or-expression-without-metadata/disp32 1212 # . . discard args @@ -1205,7 +1205,7 @@ if ('onhashchange' in window) { 1215 # . . push args 1216 68/push "F - test-next-word-string-or-expression-without-metadata/updates-stream-read-correctly"/imm32 1217 68/push 4/imm32 -1218 b8/copy-to-eax _test-input-stream/imm32 +1218 b8/copy-to-eax _test-input-stream/imm32 1219 ff 6/subop/push *(eax+4) 1220 # . . call 1221 e8/call check-ints-equal/disp32 @@ -1218,7 +1218,7 @@ if ('onhashchange' in window) { 1228 68/push 0xe/imm32 1229 # . . push slice->start - _test-input-stream 1230 8b/-> *ecx 0/r32/eax -1231 81 5/subop/subtract %eax _test-input-stream/imm32 +1231 81 5/subop/subtract %eax _test-input-stream/imm32 1232 50/push-eax 1233 # . . call 1234 e8/call check-ints-equal/disp32 @@ -1231,7 +1231,7 @@ if ('onhashchange' in window) { 1241 68/push 0x10/imm32 1242 # . . push slice->end - _test-input-stream 1243 8b/-> *(ecx+4) 0/r32/eax -1244 81 5/subop/subtract %eax _test-input-stream/imm32 +1244 81 5/subop/subtract %eax _test-input-stream/imm32 1245 50/push-eax 1246 # . . call 1247 e8/call check-ints-equal/disp32 @@ -1249,19 +1249,19 @@ if ('onhashchange' in window) { 1259 # setup 1260 # . clear-stream(_test-input-stream) 1261 # . . push args -1262 68/push _test-input-stream/imm32 +1262 68/push _test-input-stream/imm32 1263 # . . call 1264 e8/call clear-stream/disp32 1265 # . . discard args 1266 81 0/subop/add %esp 4/imm32 -1267 # var slice/ecx = {0, 0} +1267 # var slice/ecx : (ref slice) 1268 68/push 0/imm32/end 1269 68/push 0/imm32/start 1270 89/<- %ecx 4/r32/esp 1271 # write(_test-input-stream, " # a") 1272 # . . push args 1273 68/push " # a"/imm32 -1274 68/push _test-input-stream/imm32 +1274 68/push _test-input-stream/imm32 1275 # . . call 1276 e8/call write/disp32 1277 # . . discard args @@ -1269,7 +1269,7 @@ if ('onhashchange' in window) { 1279 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1280 # . . push args 1281 51/push-ecx -1282 68/push _test-input-stream/imm32 +1282 68/push _test-input-stream/imm32 1283 # . . call 1284 e8/call next-word-string-or-expression-without-metadata/disp32 1285 # . . discard args @@ -1278,7 +1278,7 @@ if ('onhashchange' in window) { 1288 # . . push args 1289 68/push "F - test-next-word-string-or-expression-without-metadata-returns-whole-comment/updates-stream-read-correctly"/imm32 1290 68/push 5/imm32 -1291 b8/copy-to-eax _test-input-stream/imm32 +1291 b8/copy-to-eax _test-input-stream/imm32 1292 ff 6/subop/push *(eax+4) 1293 # . . call 1294 e8/call check-ints-equal/disp32 @@ -1291,7 +1291,7 @@ if ('onhashchange' in window) { 1301 68/push 0xe/imm32 1302 # . . push slice->start - _test-input-stream 1303 8b/-> *ecx 0/r32/eax -1304 81 5/subop/subtract %eax _test-input-stream/imm32 +1304 81 5/subop/subtract %eax _test-input-stream/imm32 1305 50/push-eax 1306 # . . call 1307 e8/call check-ints-equal/disp32 @@ -1304,7 +1304,7 @@ if ('onhashchange' in window) { 1314 68/push 0x11/imm32 1315 # . . push slice->end - _test-input-stream 1316 8b/-> *(ecx+4) 0/r32/eax -1317 81 5/subop/subtract %eax _test-input-stream/imm32 +1317 81 5/subop/subtract %eax _test-input-stream/imm32 1318 50/push-eax 1319 # . . call 1320 e8/call check-ints-equal/disp32 @@ -1322,12 +1322,12 @@ if ('onhashchange' in window) { 1332 # setup 1333 # . clear-stream(_test-input-stream) 1334 # . . push args -1335 68/push _test-input-stream/imm32 +1335 68/push _test-input-stream/imm32 1336 # . . call 1337 e8/call clear-stream/disp32 1338 # . . discard args 1339 81 0/subop/add %esp 4/imm32 -1340 # var slice/ecx = {0, 0} +1340 # var slice/ecx : (ref slice) 1341 68/push 0/imm32/end 1342 68/push 0/imm32/start 1343 89/<- %ecx 4/r32/esp @@ -1335,7 +1335,7 @@ if ('onhashchange' in window) { 1345 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1346 # . . push args 1347 51/push-ecx -1348 68/push _test-input-stream/imm32 +1348 68/push _test-input-stream/imm32 1349 # . . call 1350 e8/call next-word-string-or-expression-without-metadata/disp32 1351 # . . discard args @@ -1364,19 +1364,19 @@ if ('onhashchange' in window) { 1374 # setup 1375 # . clear-stream(_test-input-stream) 1376 # . . push args -1377 68/push _test-input-stream/imm32 +1377 68/push _test-input-stream/imm32 1378 # . . call 1379 e8/call clear-stream/disp32 1380 # . . discard args 1381 81 0/subop/add %esp 4/imm32 -1382 # var slice/ecx = {0, 0} +1382 # var slice/ecx : (ref slice) 1383 68/push 0/imm32/end 1384 68/push 0/imm32/start 1385 89/<- %ecx 4/r32/esp 1386 # write(_test-input-stream, " \"a b\" ") 1387 # . . push args 1388 68/push " \"a b\" "/imm32 -1389 68/push _test-input-stream/imm32 +1389 68/push _test-input-stream/imm32 1390 # . . call 1391 e8/call write/disp32 1392 # . . discard args @@ -1384,7 +1384,7 @@ if ('onhashchange' in window) { 1394 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1395 # . . push args 1396 51/push-ecx -1397 68/push _test-input-stream/imm32 +1397 68/push _test-input-stream/imm32 1398 # . . call 1399 e8/call next-word-string-or-expression-without-metadata/disp32 1400 # . . discard args @@ -1396,7 +1396,7 @@ if ('onhashchange' in window) { 1406 68/push 0xd/imm32 1407 # . . push slice->start - _test-input-stream 1408 8b/-> *ecx 0/r32/eax -1409 81 5/subop/subtract %eax _test-input-stream/imm32 +1409 81 5/subop/subtract %eax _test-input-stream/imm32 1410 50/push-eax 1411 # . . call 1412 e8/call check-ints-equal/disp32 @@ -1409,7 +1409,7 @@ if ('onhashchange' in window) { 1419 68/push 0x12/imm32 1420 # . . push slice->end - _test-input-stream 1421 8b/-> *(ecx+4) 0/r32/eax -1422 81 5/subop/subtract %eax _test-input-stream/imm32 +1422 81 5/subop/subtract %eax _test-input-stream/imm32 1423 50/push-eax 1424 # . . call 1425 e8/call check-ints-equal/disp32 @@ -1427,19 +1427,19 @@ if ('onhashchange' in window) { 1437 # setup 1438 # . clear-stream(_test-input-stream) 1439 # . . push args -1440 68/push _test-input-stream/imm32 +1440 68/push _test-input-stream/imm32 1441 # . . call 1442 e8/call clear-stream/disp32 1443 # . . discard args 1444 81 0/subop/add %esp 4/imm32 -1445 # var slice/ecx = {0, 0} +1445 # var slice/ecx : (ref slice) 1446 68/push 0/imm32/end 1447 68/push 0/imm32/start 1448 89/<- %ecx 4/r32/esp 1449 # write(_test-input-stream, " \"a\\\"b\"") 1450 # . . push args 1451 68/push " \"a\\\"b\""/imm32 -1452 68/push _test-input-stream/imm32 +1452 68/push _test-input-stream/imm32 1453 # . . call 1454 e8/call write/disp32 1455 # . . discard args @@ -1447,7 +1447,7 @@ if ('onhashchange' in window) { 1457 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1458 # . . push args 1459 51/push-ecx -1460 68/push _test-input-stream/imm32 +1460 68/push _test-input-stream/imm32 1461 # . . call 1462 e8/call next-word-string-or-expression-without-metadata/disp32 1463 # . . discard args @@ -1459,7 +1459,7 @@ if ('onhashchange' in window) { 1469 68/push 0xd/imm32 1470 # . . push slice->start - _test-input-stream 1471 8b/-> *ecx 0/r32/eax -1472 81 5/subop/subtract %eax _test-input-stream/imm32 +1472 81 5/subop/subtract %eax _test-input-stream/imm32 1473 50/push-eax 1474 # . . call 1475 e8/call check-ints-equal/disp32 @@ -1472,7 +1472,7 @@ if ('onhashchange' in window) { 1482 68/push 0x13/imm32 1483 # . . push slice->end - _test-input-stream 1484 8b/-> *(ecx+4) 0/r32/eax -1485 81 5/subop/subtract %eax _test-input-stream/imm32 +1485 81 5/subop/subtract %eax _test-input-stream/imm32 1486 50/push-eax 1487 # . . call 1488 e8/call check-ints-equal/disp32 @@ -1490,19 +1490,19 @@ if ('onhashchange' in window) { 1500 # setup 1501 # . clear-stream(_test-input-stream) 1502 # . . push args -1503 68/push _test-input-stream/imm32 +1503 68/push _test-input-stream/imm32 1504 # . . call 1505 e8/call clear-stream/disp32 1506 # . . discard args 1507 81 0/subop/add %esp 4/imm32 -1508 # var slice/ecx = {0, 0} +1508 # var slice/ecx : (ref slice) 1509 68/push 0/imm32/end 1510 68/push 0/imm32/start 1511 89/<- %ecx 4/r32/esp 1512 # write(_test-input-stream, " *(a b) ") 1513 # . . push args 1514 68/push " *(a b) "/imm32 -1515 68/push _test-input-stream/imm32 +1515 68/push _test-input-stream/imm32 1516 # . . call 1517 e8/call write/disp32 1518 # . . discard args @@ -1510,7 +1510,7 @@ if ('onhashchange' in window) { 1520 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1521 # . . push args 1522 51/push-ecx -1523 68/push _test-input-stream/imm32 +1523 68/push _test-input-stream/imm32 1524 # . . call 1525 e8/call next-word-string-or-expression-without-metadata/disp32 1526 # . . discard args @@ -1522,7 +1522,7 @@ if ('onhashchange' in window) { 1532 68/push 0xd/imm32 1533 # . . push slice->start - _test-input-stream 1534 8b/-> *ecx 0/r32/eax -1535 81 5/subop/subtract %eax _test-input-stream/imm32 +1535 81 5/subop/subtract %eax _test-input-stream/imm32 1536 50/push-eax 1537 # . . call 1538 e8/call check-ints-equal/disp32 @@ -1535,7 +1535,7 @@ if ('onhashchange' in window) { 1545 68/push 0x13/imm32 1546 # . . push slice->end - _test-input-stream 1547 8b/-> *(ecx+4) 0/r32/eax -1548 81 5/subop/subtract %eax _test-input-stream/imm32 +1548 81 5/subop/subtract %eax _test-input-stream/imm32 1549 50/push-eax 1550 # . . call 1551 e8/call check-ints-equal/disp32 @@ -1553,19 +1553,19 @@ if ('onhashchange' in window) { 1563 # setup 1564 # . clear-stream(_test-input-stream) 1565 # . . push args -1566 68/push _test-input-stream/imm32 +1566 68/push _test-input-stream/imm32 1567 # . . call 1568 e8/call clear-stream/disp32 1569 # . . discard args 1570 81 0/subop/add %esp 4/imm32 -1571 # var slice/ecx = {0, 0} +1571 # var slice/ecx : (ref slice) 1572 68/push 0/imm32/end 1573 68/push 0/imm32/start 1574 89/<- %ecx 4/r32/esp 1575 # write(_test-input-stream, " ) ") 1576 # . . push args 1577 68/push " ) "/imm32 -1578 68/push _test-input-stream/imm32 +1578 68/push _test-input-stream/imm32 1579 # . . call 1580 e8/call write/disp32 1581 # . . discard args @@ -1573,7 +1573,7 @@ if ('onhashchange' in window) { 1583 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1584 # . . push args 1585 51/push-ecx -1586 68/push _test-input-stream/imm32 +1586 68/push _test-input-stream/imm32 1587 # . . call 1588 e8/call next-word-string-or-expression-without-metadata/disp32 1589 # . . discard args @@ -1608,19 +1608,19 @@ if ('onhashchange' in window) { 1618 # setup 1619 # . clear-stream(_test-input-stream) 1620 # . . push args -1621 68/push _test-input-stream/imm32 +1621 68/push _test-input-stream/imm32 1622 # . . call 1623 e8/call clear-stream/disp32 1624 # . . discard args 1625 81 0/subop/add %esp 4/imm32 -1626 # var slice/ecx = {0, 0} +1626 # var slice/ecx : (ref slice) 1627 68/push 0/imm32/end 1628 68/push 0/imm32/start 1629 89/<- %ecx 4/r32/esp 1630 # write(_test-input-stream, " ) # abc ") 1631 # . . push args 1632 68/push " ) # abc "/imm32 -1633 68/push _test-input-stream/imm32 +1633 68/push _test-input-stream/imm32 1634 # . . call 1635 e8/call write/disp32 1636 # . . discard args @@ -1628,7 +1628,7 @@ if ('onhashchange' in window) { 1638 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1639 # . . push args 1640 51/push-ecx -1641 68/push _test-input-stream/imm32 +1641 68/push _test-input-stream/imm32 1642 # . . call 1643 e8/call next-word-string-or-expression-without-metadata/disp32 1644 # . . discard args @@ -1663,19 +1663,19 @@ if ('onhashchange' in window) { 1673 # setup 1674 # . clear-stream(_test-input-stream) 1675 # . . push args -1676 68/push _test-input-stream/imm32 +1676 68/push _test-input-stream/imm32 1677 # . . call 1678 e8/call clear-stream/disp32 1679 # . . discard args 1680 81 0/subop/add %esp 4/imm32 -1681 # var slice/ecx = {0, 0} +1681 # var slice/ecx : (ref slice) 1682 68/push 0/imm32/end 1683 68/push 0/imm32/start 1684 89/<- %ecx 4/r32/esp 1685 # write(_test-input-stream, " )\n") 1686 # . . push args 1687 68/push " )\n"/imm32 -1688 68/push _test-input-stream/imm32 +1688 68/push _test-input-stream/imm32 1689 # . . call 1690 e8/call write/disp32 1691 # . . discard args @@ -1683,7 +1683,7 @@ if ('onhashchange' in window) { 1693 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1694 # . . push args 1695 51/push-ecx -1696 68/push _test-input-stream/imm32 +1696 68/push _test-input-stream/imm32 1697 # . . call 1698 e8/call next-word-string-or-expression-without-metadata/disp32 1699 # . . discard args @@ -1718,19 +1718,19 @@ if ('onhashchange' in window) { 1728 # setup 1729 # . clear-stream(_test-input-stream) 1730 # . . push args -1731 68/push _test-input-stream/imm32 +1731 68/push _test-input-stream/imm32 1732 # . . call 1733 e8/call clear-stream/disp32 1734 # . . discard args 1735 81 0/subop/add %esp 4/imm32 -1736 # var slice/ecx = {0, 0} +1736 # var slice/ecx : (ref slice) 1737 68/push 0/imm32/end 1738 68/push 0/imm32/start 1739 89/<- %ecx 4/r32/esp 1740 # write(_test-input-stream, " abc) # def") 1741 # . . push args 1742 68/push " abc) # def"/imm32 -1743 68/push _test-input-stream/imm32 +1743 68/push _test-input-stream/imm32 1744 # . . call 1745 e8/call write/disp32 1746 # . . discard args @@ -1738,7 +1738,7 @@ if ('onhashchange' in window) { 1748 # next-word-string-or-expression-without-metadata(_test-input-stream, slice) 1749 # . . push args 1750 51/push-ecx -1751 68/push _test-input-stream/imm32 +1751 68/push _test-input-stream/imm32 1752 # . . call 1753 e8/call next-word-string-or-expression-without-metadata/disp32 1754 # . . discard args @@ -1750,7 +1750,7 @@ if ('onhashchange' in window) { 1760 68/push 0xd/imm32 1761 # . . push slice->start - _test-input-stream 1762 8b/-> *ecx 0/r32/eax -1763 81 5/subop/subtract %eax _test-input-stream/imm32 +1763 81 5/subop/subtract %eax _test-input-stream/imm32 1764 50/push-eax 1765 # . . call 1766 e8/call check-ints-equal/disp32 @@ -1763,7 +1763,7 @@ if ('onhashchange' in window) { 1773 68/push 0x10/imm32 1774 # . . push slice->end - _test-input-stream 1775 8b/-> *(ecx+4) 0/r32/eax -1776 81 5/subop/subtract %eax _test-input-stream/imm32 +1776 81 5/subop/subtract %eax _test-input-stream/imm32 1777 50/push-eax 1778 # . . call 1779 e8/call check-ints-equal/disp32 -- cgit 1.4.1-2-gfad0