From 4a4a392dc7c81b301ad6b760525c5549f2f6644c Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Fri, 20 Sep 2019 11:19:30 -0700 Subject: 5683 --- html/apps/sigils.subx.html | 248 ++++++++++++++++++++++----------------------- 1 file changed, 124 insertions(+), 124 deletions(-) (limited to 'html/apps/sigils.subx.html') diff --git a/html/apps/sigils.subx.html b/html/apps/sigils.subx.html index a243b945..1449348e 100644 --- a/html/apps/sigils.subx.html +++ b/html/apps/sigils.subx.html @@ -64,7 +64,7 @@ if ('onhashchange' in window) { 2 # other related arguments. 3 # 4 # To run: - 5 # $ ./subx translate init.linux 0*.subx apps/subx-common.subx apps/sigils.subx -o apps/sigils + 5 # $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/sigils.subx -o apps/sigils 6 # 7 # We currently support the following notations: 8 # @@ -120,18 +120,18 @@ if ('onhashchange' in window) { 58 # initialize heap 59 # . Heap = new-segment(Heap-size) 60 # . . push args - 61 68/push Heap/imm32 - 62 ff 6/subop/push 0/mod/indirect 5/rm32/.disp32 . . . Heap-size/disp32 # push *Heap-size + 61 68/push Heap/imm32 + 62 ff 6/subop/push 0/mod/indirect 5/rm32/.disp32 . . . Heap-size/disp32 # push *Heap-size 63 # . . call 64 e8/call new-segment/disp32 65 # . . discard args 66 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 67 68 # - if argc > 1 and argv[1] == "test", then return run_tests() - 69 # if (argc <= 1) goto run-main + 69 # if (argc <= 1) goto interactive 70 81 7/subop/compare 1/mod/*+disp8 5/rm32/ebp . . . . 0/disp8 1/imm32 # compare *ebp - 71 7e/jump-if-lesser-or-equal $run-main/disp8 - 72 # if (!kernel-string-equal?(argv[1], "test")) goto run-main + 71 7e/jump-if-lesser-or-equal $subx-sigils-main:interactive/disp8 + 72 # if (!kernel-string-equal?(argv[1], "test")) goto interactive 73 # . eax = kernel-string-equal?(argv[1], "test") 74 # . . push args 75 68/push "test"/imm32 @@ -140,33 +140,33 @@ if ('onhashchange' in window) { 78 e8/call kernel-string-equal?/disp32 79 # . . discard args 80 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 81 # . if (eax == 0) goto run-main + 81 # . if (eax == 0) goto interactive 82 3d/compare-eax-and 0/imm32 - 83 74/jump-if-equal $run-main/disp8 + 83 74/jump-if-equal $subx-sigils-main:interactive/disp8 84 # run-tests() 85 e8/call run-tests/disp32 86 # syscall(exit, *Num-test-failures) 87 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/ebx Num-test-failures/disp32 # copy *Num-test-failures to ebx - 88 eb/jump $main:end/disp8 - 89 $run-main: + 88 eb/jump $subx-sigils-main:end/disp8 + 89 $subx-sigils-main:interactive: 90 # - otherwise convert stdin - 91 # convert(Stdin, Stdout) + 91 # subx-sigils(Stdin, Stdout) 92 # . . push args 93 68/push Stdout/imm32 94 68/push Stdin/imm32 95 # . . call - 96 e8/call convert/disp32 + 96 e8/call subx-sigils/disp32 97 # . . discard args 98 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 99 # syscall(exit, 0) 100 bb/copy-to-ebx 0/imm32 - 101 $main:end: + 101 $subx-sigils-main:end: 102 b8/copy-to-eax 1/imm32/exit 103 cd/syscall 0x80/imm8 104 105 # error messages considered: 106 # *x + 34 -> error: base+disp addressing must be within '()' - 107 convert: # in : (address buffered-file), out : (address buffered-file) -> <void> + 107 subx-sigils: # in : (address buffered-file), out : (address buffered-file) -> <void> 108 # pseudocode: 109 # var line = new-stream(512, 1) 110 # while true @@ -213,7 +213,7 @@ if ('onhashchange' in window) { 151 68/push 0/imm32/end 152 68/push 0/imm32/start 153 89/copy 3/mod/direct 2/rm32/edx . . . 4/r32/esp . . # copy esp to edx - 154 $convert:line-loop: + 154 $subx-sigils:line-loop: 155 # clear-stream(line) 156 # . . push args 157 51/push-ecx @@ -229,11 +229,11 @@ if ('onhashchange' in window) { 167 e8/call read-line-buffered/disp32 168 # . . discard args 169 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 170 $convert:check0: + 170 $subx-sigils:check0: 171 # if (line->write == 0) break 172 81 7/subop/compare 0/mod/indirect 1/rm32/ecx . . . . . 0/imm32 # compare *ecx - 173 0f 84/jump-if-equal $convert:break/disp32 - 174 $convert:word-loop: + 173 0f 84/jump-if-equal $subx-sigils:break/disp32 + 174 $subx-sigils:word-loop: 175 # next-word-or-expression(line, word-slice) 176 # . . push args 177 52/push-edx @@ -242,7 +242,7 @@ if ('onhashchange' in window) { 180 e8/call next-word-or-expression/disp32 181 # . . discard args 182 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 183 $convert:check1: + 183 $subx-sigils:check1: 184 # if (slice-empty?(word-slice)) break 185 # . eax = slice-empty?(word-slice) 186 # . . push args @@ -253,8 +253,8 @@ if ('onhashchange' in window) { 191 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 192 # . if (eax != 0) break 193 3d/compare-eax-and 0/imm32 - 194 0f 85/jump-if-not-equal $convert:next-line/disp32 - 195 $convert:check-for-comment: + 194 0f 85/jump-if-not-equal $subx-sigils:next-line/disp32 + 195 $subx-sigils:check-for-comment: 196 # if (slice-starts-with?(word-slice, "#")) continue 197 # . start/ebx = word-slice->start 198 8b/copy 0/mod/indirect 2/rm32/edx . . . 3/r32/ebx . . # copy *edx to ebx @@ -263,13 +263,13 @@ if ('onhashchange' in window) { 201 8a/copy-byte 0/mod/indirect 3/rm32/ebx . . . 0/r32/AL . . # copy byte at *ebx to AL 202 # . if (eax == '#') continue 203 3d/compare-eax-and 0x23/imm32/hash - 204 74/jump-if-equal $convert:word-loop/disp8 - 205 $convert:check-for-direct-mode: + 204 74/jump-if-equal $subx-sigils:word-loop/disp8 + 205 $subx-sigils:check-for-direct-mode: 206 # if (!slice-starts-with?(word-slice, "%")) goto next check 207 3d/compare-eax-and 0x25/imm32/percent - 208 75/jump-if-not-equal $convert:check-for-indirect-mode/disp8 - 209 $convert:direct-mode: - 210 +-- 46 lines: #? # dump word-slice ----------------------------------------------------------------------------------------------------------------------- + 208 75/jump-if-not-equal $subx-sigils:check-for-indirect-mode/disp8 + 209 $subx-sigils:direct-mode: + 210 +-- 46 lines: #? # dump word-slice ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 256 # emit-direct-mode(out, word-slice) 257 # . . push args 258 52/push-edx @@ -279,11 +279,11 @@ if ('onhashchange' in window) { 262 # . . discard args 263 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 264 # continue - 265 e9/jump $convert:next-word/disp32 - 266 $convert:check-for-indirect-mode: + 265 e9/jump $subx-sigils:next-word/disp32 + 266 $subx-sigils:check-for-indirect-mode: 267 # if (!slice-starts-with?(word-slice, "*")) goto next check 268 3d/compare-eax-and 0x2a/imm32/asterisk - 269 75/jump-if-not-equal $convert:check-for-invalid-addition/disp8 + 269 75/jump-if-not-equal $subx-sigils:check-for-invalid-addition/disp8 270 # if (!disp32-mode?(word-slice)) goto indirect mode 271 # . eax = disp32-mode?(word-slice) 272 # . . push args @@ -294,8 +294,8 @@ if ('onhashchange' in window) { 277 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 278 # . if (eax == 0) goto indirect mode 279 3d/compare-eax-and 0/imm32 - 280 74/jump-if-equal $convert:indirect-mode/disp8 - 281 $convert:disp32-mode: + 280 74/jump-if-equal $subx-sigils:indirect-mode/disp8 + 281 $subx-sigils:disp32-mode: 282 # emit-indirect-mode(out, word-slice) 283 # . . push args 284 52/push-edx @@ -305,8 +305,8 @@ if ('onhashchange' in window) { 288 # . . discard args 289 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 290 # continue - 291 e9/jump $convert:next-word/disp32 - 292 $convert:indirect-mode: + 291 e9/jump $subx-sigils:next-word/disp32 + 292 $subx-sigils:indirect-mode: 293 # spill registers 294 50/push-eax 295 51/push-ecx @@ -336,16 +336,16 @@ if ('onhashchange' in window) { 319 59/pop-to-ecx 320 58/pop-to-eax 321 # continue - 322 e9/jump $convert:next-word/disp32 - 323 $convert:check-for-invalid-addition: + 322 e9/jump $subx-sigils:next-word/disp32 + 323 $subx-sigils:check-for-invalid-addition: 324 # if (slice-starts-with?(word-slice, "+")) goto error1 325 3d/compare-eax-and 0x2b/imm32/plus - 326 74/jump-if-equal $convert:error1/disp8 - 327 $convert:check-for-invalid-left-shift: + 326 74/jump-if-equal $subx-sigils:error1/disp8 + 327 $subx-sigils:check-for-invalid-left-shift: 328 # if (slice-starts-with?(word-slice, "<")) goto error1 329 3d/compare-eax-and 0x3c/imm32/less-than - 330 74/jump-if-equal $convert:error1/disp8 - 331 $convert:regular-word: + 330 74/jump-if-equal $subx-sigils:error1/disp8 + 331 $subx-sigils:regular-word: 332 # write-slice-buffered(out, word-slice) 333 # . . push args 334 52/push-edx @@ -355,18 +355,18 @@ if ('onhashchange' in window) { 338 # . . discard args 339 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 340 # fall through - 341 $convert:next-word: + 341 $subx-sigils:next-word: 342 # write-buffered(out, " ") 343 # . . push args - 344 68/push " "/imm32 + 344 68/push Space/imm32 345 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 0xc/disp8 . # push *(ebp+12) 346 # . . call 347 e8/call write-buffered/disp32 348 # . . discard args 349 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 350 # loop - 351 e9/jump $convert:word-loop/disp32 - 352 $convert:next-line: + 351 e9/jump $subx-sigils:word-loop/disp32 + 352 $subx-sigils:next-line: 353 # write-buffered(out, "\n") 354 # . . push args 355 68/push Newline/imm32 @@ -376,8 +376,8 @@ if ('onhashchange' in window) { 359 # . . discard args 360 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 361 # loop - 362 e9/jump $convert:line-loop/disp32 - 363 $convert:break: + 362 e9/jump $subx-sigils:line-loop/disp32 + 363 $subx-sigils:break: 364 # flush(out) 365 # . . push args 366 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 0xc/disp8 . # push *(ebp+12) @@ -385,7 +385,7 @@ if ('onhashchange' in window) { 368 e8/call flush/disp32 369 # . . discard args 370 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp - 371 $convert:end: + 371 $subx-sigils:end: 372 # . reclaim locals 373 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0x214/imm32 # add to esp 374 # . restore registers @@ -398,7 +398,7 @@ if ('onhashchange' in window) { 381 5d/pop-to-ebp 382 c3/return 383 - 384 $convert:error1: + 384 $subx-sigils:error1: 385 # print(stderr, "error: '" eax "' only permitted within '*(...)' in '" line "'") 386 # . write-buffered(Stderr, "error: '") 387 # . . push args @@ -429,7 +429,7 @@ if ('onhashchange' in window) { 412 51/push-ecx 413 68/push Stderr/imm32 414 # . . call - 415 e8/call write-stream-data/disp32 + 415 e8/call write-stream-data/disp32 416 # . . discard args 417 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 418 # . write-buffered(Stderr, "'") @@ -453,7 +453,7 @@ if ('onhashchange' in window) { 436 cd/syscall 0x80/imm8 437 # never gets here 438 - 439 test-convert-passes-most-words-through: + 439 test-subx-sigils-passes-most-words-through: 440 # . prolog 441 55/push-ebp 442 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -499,12 +499,12 @@ if ('onhashchange' in window) { 482 e8/call write/disp32 483 # . . discard args 484 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 485 # convert(_test-input-buffered-file, _test-output-buffered-file) + 485 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 486 # . . push args 487 68/push _test-output-buffered-file/imm32 488 68/push _test-input-buffered-file/imm32 489 # . . call - 490 e8/call convert/disp32 + 490 e8/call subx-sigils/disp32 491 # . . discard args 492 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 493 # check that the line just passed through @@ -515,10 +515,10 @@ if ('onhashchange' in window) { 498 e8/call flush/disp32 499 # . . discard args 500 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp - 501 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- + 501 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 527 # . check-stream-equal(_test-output-stream, "== abcd 0x1 \n", msg) 528 # . . push args - 529 68/push "F - test-convert-passes-most-words-through"/imm32 + 529 68/push "F - test-subx-sigils-passes-most-words-through"/imm32 530 68/push "== abcd 0x1 \n"/imm32 531 68/push _test-output-stream/imm32 532 # . . call @@ -530,7 +530,7 @@ if ('onhashchange' in window) { 538 5d/pop-to-ebp 539 c3/return 540 - 541 test-convert-direct-mode: + 541 test-subx-sigils-direct-mode: 542 # . prolog 543 55/push-ebp 544 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -576,12 +576,12 @@ if ('onhashchange' in window) { 584 e8/call write/disp32 585 # . . discard args 586 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 587 # convert(_test-input-buffered-file, _test-output-buffered-file) + 587 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 588 # . . push args 589 68/push _test-output-buffered-file/imm32 590 68/push _test-input-buffered-file/imm32 591 # . . call - 592 e8/call convert/disp32 + 592 e8/call subx-sigils/disp32 593 # . . discard args 594 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 595 # check that the line just passed through @@ -592,10 +592,10 @@ if ('onhashchange' in window) { 600 e8/call flush/disp32 601 # . . discard args 602 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp - 603 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- + 603 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 629 # . check-stream-equal(_test-output-stream, "ab 3/mod/direct 0x00000001/rm32 \n", msg) 630 # . . push args - 631 68/push "F - test-convert-direct-mode"/imm32 + 631 68/push "F - test-subx-sigils-direct-mode"/imm32 632 68/push "ab 3/mod/direct 0x00000001/rm32 \n"/imm32 633 68/push _test-output-stream/imm32 634 # . . call @@ -607,7 +607,7 @@ if ('onhashchange' in window) { 640 5d/pop-to-ebp 641 c3/return 642 - 643 test-convert-direct-mode-with-metadata: + 643 test-subx-sigils-direct-mode-with-metadata: 644 # . prolog 645 55/push-ebp 646 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -653,12 +653,12 @@ if ('onhashchange' in window) { 686 e8/call write/disp32 687 # . . discard args 688 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 689 # convert(_test-input-buffered-file, _test-output-buffered-file) + 689 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 690 # . . push args 691 68/push _test-output-buffered-file/imm32 692 68/push _test-input-buffered-file/imm32 693 # . . call - 694 e8/call convert/disp32 + 694 e8/call subx-sigils/disp32 695 # . . discard args 696 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 697 # check that the line just passed through @@ -671,7 +671,7 @@ if ('onhashchange' in window) { 704 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 705 # . check-stream-equal(_test-output-stream, "ab 3/mod/direct 0x00000001/rm32 \n", msg) 706 # . . push args - 707 68/push "F - test-convert-direct-mode-with-metadata"/imm32 + 707 68/push "F - test-subx-sigils-direct-mode-with-metadata"/imm32 708 68/push "ab 3/mod/direct 0x00000001/rm32 \n"/imm32 709 68/push _test-output-stream/imm32 710 # . . call @@ -683,7 +683,7 @@ if ('onhashchange' in window) { 716 5d/pop-to-ebp 717 c3/return 718 - 719 test-convert-register-indirect-mode: + 719 test-subx-sigils-register-indirect-mode: 720 # . prolog 721 55/push-ebp 722 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -729,12 +729,12 @@ if ('onhashchange' in window) { 762 e8/call write/disp32 763 # . . discard args 764 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 765 # convert(_test-input-buffered-file, _test-output-buffered-file) + 765 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 766 # . . push args 767 68/push _test-output-buffered-file/imm32 768 68/push _test-input-buffered-file/imm32 769 # . . call - 770 e8/call convert/disp32 + 770 e8/call subx-sigils/disp32 771 # . . discard args 772 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 773 # check that the line just passed through @@ -745,10 +745,10 @@ if ('onhashchange' in window) { 778 e8/call flush/disp32 779 # . . discard args 780 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp - 781 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- + 781 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 807 # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 0x00000001/rm32 \n", msg) 808 # . . push args - 809 68/push "F - test-convert-register-indirect-mode"/imm32 + 809 68/push "F - test-subx-sigils-register-indirect-mode"/imm32 810 68/push "ab 0/mod/indirect 0x00000001/rm32 \n"/imm32 811 68/push _test-output-stream/imm32 812 # . . call @@ -760,7 +760,7 @@ if ('onhashchange' in window) { 818 5d/pop-to-ebp 819 c3/return 820 - 821 test-convert-register-indirect-mode-with-metadata: + 821 test-subx-sigils-register-indirect-mode-with-metadata: 822 # . prolog 823 55/push-ebp 824 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -806,12 +806,12 @@ if ('onhashchange' in window) { 864 e8/call write/disp32 865 # . . discard args 866 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 867 # convert(_test-input-buffered-file, _test-output-buffered-file) + 867 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 868 # . . push args 869 68/push _test-output-buffered-file/imm32 870 68/push _test-input-buffered-file/imm32 871 # . . call - 872 e8/call convert/disp32 + 872 e8/call subx-sigils/disp32 873 # . . discard args 874 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 875 # check that the line just passed through @@ -824,7 +824,7 @@ if ('onhashchange' in window) { 882 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 883 # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 0x00000001/rm32 \n", msg) 884 # . . push args - 885 68/push "F - test-convert-register-indirect-mode-with-metadata"/imm32 + 885 68/push "F - test-subx-sigils-register-indirect-mode-with-metadata"/imm32 886 68/push "ab 0/mod/indirect 0x00000001/rm32 \n"/imm32 887 68/push _test-output-stream/imm32 888 # . . call @@ -836,7 +836,7 @@ if ('onhashchange' in window) { 894 5d/pop-to-ebp 895 c3/return 896 - 897 test-convert-register-indirect-mode-without-displacement: + 897 test-subx-sigils-register-indirect-mode-without-displacement: 898 # . prolog 899 55/push-ebp 900 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -882,12 +882,12 @@ if ('onhashchange' in window) { 940 e8/call write/disp32 941 # . . discard args 942 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp - 943 # convert(_test-input-buffered-file, _test-output-buffered-file) + 943 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 944 # . . push args 945 68/push _test-output-buffered-file/imm32 946 68/push _test-input-buffered-file/imm32 947 # . . call - 948 e8/call convert/disp32 + 948 e8/call subx-sigils/disp32 949 # . . discard args 950 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 951 # check that the line just passed through @@ -898,10 +898,10 @@ if ('onhashchange' in window) { 956 e8/call flush/disp32 957 # . . discard args 958 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp - 959 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- + 959 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 985 # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 1/rm32 \n", msg) 986 # . . push args - 987 68/push "F - test-convert-register-indirect-mode-without-displacement"/imm32 + 987 68/push "F - test-subx-sigils-register-indirect-mode-without-displacement"/imm32 988 68/push "ab 0/mod/indirect 0x00000001/rm32 \n"/imm32 989 68/push _test-output-stream/imm32 990 # . . call @@ -913,7 +913,7 @@ if ('onhashchange' in window) { 996 5d/pop-to-ebp 997 c3/return 998 - 999 test-convert-register-indirect-mode-with-displacement: + 999 test-subx-sigils-register-indirect-mode-with-displacement: 1000 # . prolog 1001 55/push-ebp 1002 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -959,12 +959,12 @@ if ('onhashchange' in window) { 1042 e8/call write/disp32 1043 # . . discard args 1044 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp -1045 # convert(_test-input-buffered-file, _test-output-buffered-file) +1045 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 1046 # . . push args 1047 68/push _test-output-buffered-file/imm32 1048 68/push _test-input-buffered-file/imm32 1049 # . . call -1050 e8/call convert/disp32 +1050 e8/call subx-sigils/disp32 1051 # . . discard args 1052 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1053 # check that the line just passed through @@ -975,10 +975,10 @@ if ('onhashchange' in window) { 1058 e8/call flush/disp32 1059 # . . discard args 1060 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -1061 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- +1061 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1087 # . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 1/rm32 4/disp32 \n", msg) 1088 # . . push args -1089 68/push "F - test-convert-register-indirect-mode-with-displacement"/imm32 +1089 68/push "F - test-subx-sigils-register-indirect-mode-with-displacement"/imm32 1090 68/push "ab 2/mod/*+disp32 0x00000001/rm32 0x00000004/disp32 \n"/imm32 1091 68/push _test-output-stream/imm32 1092 # . . call @@ -991,7 +991,7 @@ if ('onhashchange' in window) { 1099 c3/return 1100 1101 # boss level -1102 test-convert-register-indirect-mode-with-sib-byte: +1102 test-subx-sigils-register-indirect-mode-with-sib-byte: 1103 # . prolog 1104 55/push-ebp 1105 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -1037,12 +1037,12 @@ if ('onhashchange' in window) { 1145 e8/call write/disp32 1146 # . . discard args 1147 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp -1148 # convert(_test-input-buffered-file, _test-output-buffered-file) +1148 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 1149 # . . push args 1150 68/push _test-output-buffered-file/imm32 1151 68/push _test-input-buffered-file/imm32 1152 # . . call -1153 e8/call convert/disp32 +1153 e8/call subx-sigils/disp32 1154 # . . discard args 1155 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1156 # check that the line just passed through @@ -1053,10 +1053,10 @@ if ('onhashchange' in window) { 1161 e8/call flush/disp32 1162 # . . discard args 1163 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -1164 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- +1164 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1190 # . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale 4/disp32 \n", msg) 1191 # . . push args -1192 68/push "F - test-convert-register-indirect-mode-with-sib-byte"/imm32 +1192 68/push "F - test-subx-sigils-register-indirect-mode-with-sib-byte"/imm32 1193 68/push "ab 2/mod/*+disp32 4/rm32/sib 0x00000001/base 0x00000002/index 0x00000003/scale 0x00000004/disp32 \n"/imm32 1194 68/push _test-output-stream/imm32 1195 # . . call @@ -1068,7 +1068,7 @@ if ('onhashchange' in window) { 1201 5d/pop-to-ebp 1202 c3/return 1203 -1204 test-convert-register-indirect-mode-with-sib-byte-negative-displacement: +1204 test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement: 1205 # . prolog 1206 55/push-ebp 1207 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -1114,12 +1114,12 @@ if ('onhashchange' in window) { 1247 e8/call write/disp32 1248 # . . discard args 1249 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp -1250 # convert(_test-input-buffered-file, _test-output-buffered-file) +1250 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 1251 # . . push args 1252 68/push _test-output-buffered-file/imm32 1253 68/push _test-input-buffered-file/imm32 1254 # . . call -1255 e8/call convert/disp32 +1255 e8/call subx-sigils/disp32 1256 # . . discard args 1257 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1258 # check that the line just passed through @@ -1130,10 +1130,10 @@ if ('onhashchange' in window) { 1263 e8/call flush/disp32 1264 # . . discard args 1265 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -1266 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- +1266 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1292 # . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale -4/disp32 \n", msg) 1293 # . . push args -1294 68/push "F - test-convert-register-indirect-mode-with-sib-byte-negative-displacement"/imm32 +1294 68/push "F - test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement"/imm32 1295 68/push "ab 2/mod/*+disp32 4/rm32/sib 0x00000001/base 0x00000002/index 0x00000003/scale 0xfffffffc/disp32 \n"/imm32 1296 68/push _test-output-stream/imm32 1297 # . . call @@ -1145,7 +1145,7 @@ if ('onhashchange' in window) { 1303 5d/pop-to-ebp 1304 c3/return 1305 -1306 test-convert-indirect-mode-without-register: +1306 test-subx-sigils-indirect-mode-without-register: 1307 # . prolog 1308 55/push-ebp 1309 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -1191,12 +1191,12 @@ if ('onhashchange' in window) { 1349 e8/call write/disp32 1350 # . . discard args 1351 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp -1352 # convert(_test-input-buffered-file, _test-output-buffered-file) +1352 # subx-sigils(_test-input-buffered-file, _test-output-buffered-file) 1353 # . . push args 1354 68/push _test-output-buffered-file/imm32 1355 68/push _test-input-buffered-file/imm32 1356 # . . call -1357 e8/call convert/disp32 +1357 e8/call subx-sigils/disp32 1358 # . . discard args 1359 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1360 # check that the line just passed through @@ -1207,10 +1207,10 @@ if ('onhashchange' in window) { 1365 e8/call flush/disp32 1366 # . . discard args 1367 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -1368 +-- 26 lines: #? # dump _test-output-stream -------------------------------------------------------------------------------------------------------------- +1368 +-- 26 lines: #? # dump _test-output-stream ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1394 # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n", msg) 1395 # . . push args -1396 68/push "F - test-convert-indirect-mode-without-register"/imm32 +1396 68/push "F - test-subx-sigils-indirect-mode-without-register"/imm32 1397 68/push "ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n"/imm32 1398 68/push _test-output-stream/imm32 1399 # . . call @@ -1253,7 +1253,7 @@ if ('onhashchange' in window) { 1436 50/push-eax 1437 68/push Registers/imm32 1438 # . . call -1439 e8/call get-slice/disp32 +1439 e8/call get-slice/disp32 1440 # . . discard args 1441 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32 # add to esp 1442 # write-buffered(out, "3/mod/direct ") @@ -1335,7 +1335,7 @@ if ('onhashchange' in window) { 1518 e8/call flush/disp32 1519 # . . discard args 1520 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -1521 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +1521 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1547 # check-stream-equal(_test-output-stream, "3/mod/direct 0/rm32", msg) 1548 # . . push args 1549 68/push "F - test-emit-direct-mode/0"/imm32 @@ -1395,7 +1395,7 @@ if ('onhashchange' in window) { 1603 e8/call flush/disp32 1604 # . . discard args 1605 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -1606 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +1606 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1632 # check-stream-equal(_test-output-stream, "3/mod/direct 7/rm32", msg) 1633 # . . push args 1634 68/push "F - test-emit-direct-mode/1"/imm32 @@ -1576,7 +1576,7 @@ if ('onhashchange' in window) { 1809 56/push-esi 1810 68/push Stderr/imm32 1811 # . . call -1812 e8/call write-stream-data/disp32 +1812 e8/call write-stream-data/disp32 1813 # . . discard args 1814 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1815 # . write-buffered(Stderr, "'") @@ -1615,7 +1615,7 @@ if ('onhashchange' in window) { 1848 56/push-esi 1849 68/push Stderr/imm32 1850 # . . call -1851 e8/call write-stream-data/disp32 +1851 e8/call write-stream-data/disp32 1852 # . . discard args 1853 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1854 # . write-buffered(Stderr, "'") @@ -2106,7 +2106,7 @@ if ('onhashchange' in window) { 2339 56/push-esi 2340 68/push Registers/imm32 2341 # . . call -2342 e8/call get-slice/disp32 +2342 e8/call get-slice/disp32 2343 # . . discard args 2344 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32 # add to esp 2345 # . base = *eax @@ -2193,7 +2193,7 @@ if ('onhashchange' in window) { 2426 51/push-ecx 2427 68/push Registers/imm32 2428 # . . call -2429 e8/call maybe-get-slice/disp32 +2429 e8/call maybe-get-slice/disp32 2430 # . . discard args 2431 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0xc/imm32 # add to esp 2432 # . reclaim tmp @@ -2349,7 +2349,7 @@ if ('onhashchange' in window) { 2582 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 2583 # . write-buffered(Stderr, "\n") 2584 # . . push args -2585 68/push "\n"/imm32 +2585 68/push Newline/imm32 2586 68/push Stderr/imm32 2587 # . . call 2588 e8/call write-buffered/disp32 @@ -2388,7 +2388,7 @@ if ('onhashchange' in window) { 2621 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 2622 # . write-buffered(Stderr, "\n") 2623 # . . push args -2624 68/push "\n"/imm32 +2624 68/push Newline/imm32 2625 68/push Stderr/imm32 2626 # . . call 2627 e8/call write-buffered/disp32 @@ -2427,7 +2427,7 @@ if ('onhashchange' in window) { 2660 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 2661 # . write-buffered(Stderr, "\n") 2662 # . . push args -2663 68/push "\n"/imm32 +2663 68/push Newline/imm32 2664 68/push Stderr/imm32 2665 # . . call 2666 e8/call write-buffered/disp32 @@ -2511,7 +2511,7 @@ if ('onhashchange' in window) { 2744 51/push-ecx 2745 68/push Registers/imm32 2746 # . . call -2747 e8/call get-slice/disp32 +2747 e8/call get-slice/disp32 2748 # . . discard args 2749 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0x10/imm32 # add to esp 2750 $next-register:end: @@ -3175,7 +3175,7 @@ if ('onhashchange' in window) { 3408 e8/call flush/disp32 3409 # . . discard args 3410 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3411 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3411 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3437 # check-stream-equal(_test-output-stream, "0/mod/indirect 0/rm32", msg) 3438 # . . push args 3439 68/push "F - test-emit-indirect-mode"/imm32 @@ -3229,7 +3229,7 @@ if ('onhashchange' in window) { 3487 e8/call flush/disp32 3488 # . . discard args 3489 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3490 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3490 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3516 # check-stream-equal(_test-output-stream, "0/mod/indirect 7/rm32", msg) 3517 # . . push args 3518 68/push "F - test-emit-indirect-mode-2"/imm32 @@ -3283,7 +3283,7 @@ if ('onhashchange' in window) { 3566 e8/call flush/disp32 3567 # . . discard args 3568 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3569 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3569 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3595 # check-stream-equal(_test-output-stream, "2/mod/*+disp32 6/rm32 4/disp32", msg) 3596 # . . push args 3597 68/push "F - test-emit-indirect-mode-with-disp"/imm32 @@ -3337,7 +3337,7 @@ if ('onhashchange' in window) { 3645 e8/call flush/disp32 3646 # . . discard args 3647 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3648 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3648 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3674 # check-stream-equal(_test-output-stream, "2/mod/*+disp32 6/rm32 -4/disp32", msg) 3675 # . . push args 3676 68/push "F - test-emit-indirect-mode-with-disp"/imm32 @@ -3391,7 +3391,7 @@ if ('onhashchange' in window) { 3724 e8/call flush/disp32 3725 # . . discard args 3726 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3727 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3727 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3753 # check-stream-equal(_test-output-stream, "2/mod/indirect 4/rm32/sib 6/base 1/index 2/scale 4/disp", msg) 3754 # . . push args 3755 68/push "F - test-emit-indirect-mode-with-sib"/imm32 @@ -3445,7 +3445,7 @@ if ('onhashchange' in window) { 3803 e8/call flush/disp32 3804 # . . discard args 3805 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3806 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3806 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3832 # check-stream-equal(_test-output-stream, "2/mod/*+disp32 4/rm32/sib 5/base/ebp 0/index 0/scale 0/disp32", msg) 3833 # . . push args 3834 68/push "F - test-emit-indirect-mode-ebp"/imm32 @@ -3499,7 +3499,7 @@ if ('onhashchange' in window) { 3882 e8/call flush/disp32 3883 # . . discard args 3884 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -3885 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------- +3885 +-- 26 lines: #? # dump output ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3911 # check-stream-equal(_test-output-stream, "2/mod/*+disp32 4/rm32/sib 4/base/ebp 0/index 0/scale 0/disp32", msg) 3912 # . . push args 3913 68/push "F - test-emit-indirect-mode-esp"/imm32 @@ -3551,7 +3551,7 @@ if ('onhashchange' in window) { 3959 56/push-esi 3960 68/push Registers/imm32 3961 # . . cal -3962 e8/call maybe-get-slice/disp32 +3962 e8/call maybe-get-slice/disp32 3963 # . . discard args 3964 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0xc/imm32 # add to esp 3965 # if (eax != 0) return false @@ -3683,7 +3683,7 @@ if ('onhashchange' in window) { 4091 # . if (*curr != '0') jump to loop 4092 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . . # copy byte at *ecx to AL 4093 3d/compare-eax-and 0x30/imm32/0 -4094 75/jump-if-not-equal $next-hex-int:loop/disp8 +4094 75/jump-if-not-equal $next-hex-int:loop/disp8 4095 # . ++curr 4096 41/increment-ecx 4097 $next-hex-int:initial-0x: @@ -3694,13 +3694,13 @@ if ('onhashchange' in window) { 4102 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . . # clear eax 4103 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . . # copy byte at *ecx to AL 4104 3d/compare-eax-and 0x78/imm32/x -4105 75/jump-if-not-equal $next-hex-int:loop/disp8 +4105 75/jump-if-not-equal $next-hex-int:loop/disp8 4106 # . ++curr 4107 41/increment-ecx 4108 $next-hex-int:loop: 4109 # if (curr >= in->end) break 4110 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx -4111 73/jump-if-greater-or-equal-unsigned $next-hex-int:break/disp8 +4111 73/jump-if-greater-or-equal-unsigned $next-hex-int:break/disp8 4112 # if (!is-hex-digit?(*curr)) break 4113 # . eax = *curr 4114 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . . # copy byte at *ecx to AL @@ -3713,7 +3713,7 @@ if ('onhashchange' in window) { 4121 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 4122 # . if (eax == 0) break 4123 3d/compare-eax-and 0/imm32 -4124 74/jump-if-equal $next-hex-int:break/disp8 +4124 74/jump-if-equal $next-hex-int:break/disp8 4125 # eax = from-hex-char(*curr) 4126 # . . copy arg to eax 4127 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . . # copy byte at *ecx to AL @@ -3725,7 +3725,7 @@ if ('onhashchange' in window) { 4133 # ++curr 4134 41/increment-ecx 4135 # loop -4136 eb/jump $next-hex-int:loop/disp8 +4136 eb/jump $next-hex-int:loop/disp8 4137 $next-hex-int:break: 4138 81 7/subop/compare 3/mod/direct 3/rm32/ebx . . . . . 0/imm32 # compare ebx 4139 74/jump-if-equal $next-hex-int:end/disp8 @@ -3786,7 +3786,7 @@ if ('onhashchange' in window) { 4194 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp 4195 # . _write(2/stderr, "\n") 4196 # . . push args -4197 68/push "\n"/imm32 +4197 68/push Newline/imm32 4198 68/push 2/imm32/stderr 4199 # . . call 4200 e8/call _write/disp32 @@ -4067,7 +4067,7 @@ if ('onhashchange' in window) { 4475 # . if (*curr != '0') jump to loop 4476 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . . # copy byte at *ecx to AL 4477 3d/compare-eax-and 0x30/imm32/0 -4478 75/jump-if-not-equal $next-positive-hex-int:loop/disp8 +4478 75/jump-if-not-equal $next-positive-hex-int:loop/disp8 4479 # . ++curr 4480 41/increment-ecx 4481 $next-positive-hex-int:initial-0x: @@ -4078,7 +4078,7 @@ if ('onhashchange' in window) { 4486 31/xor 3/mod/direct 0/rm32/eax . . . 0/r32/eax . . # clear eax 4487 8a/copy-byte 0/mod/indirect 1/rm32/ecx . . . 0/r32/AL . . # copy byte at *ecx to AL 4488 3d/compare-eax-and 0x78/imm32/x -4489 75/jump-if-not-equal $next-positive-hex-int:loop/disp8 +4489 75/jump-if-not-equal $next-positive-hex-int:loop/disp8 4490 # . ++curr 4491 41/increment-ecx 4492 $next-positive-hex-int:loop: @@ -4109,7 +4109,7 @@ if ('onhashchange' in window) { 4517 # ++curr 4518 41/increment-ecx 4519 # loop -4520 eb/jump $next-positive-hex-int:loop/disp8 +4520 eb/jump $next-positive-hex-int:loop/disp8 4521 $next-positive-hex-int:end: 4522 # word-slice->start = curr 4523 89/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . . # copy ecx to *esi -- cgit 1.4.1-2-gfad0