From 6070c23e5e1c60d3bb169e43bddfa59b1d322427 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Thu, 16 Jan 2020 18:31:12 -0800 Subject: 5897 - rename comparison instructions Signed and unsigned don't quite capture the essence of what the different combinations of x86 flags are doing for SubX. The crucial distinction is that one set of comparison operators is for integers and the second is for addresses. --- html/081table.subx.html | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'html/081table.subx.html') diff --git a/html/081table.subx.html b/html/081table.subx.html index 6ed012d9..127b2d9d 100644 --- a/html/081table.subx.html +++ b/html/081table.subx.html @@ -112,7 +112,7 @@ if ('onhashchange' in window) { 51 $get:search-loop: 52 # if (curr >= max) abort 53 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx - 54 73/jump-if-greater-or-equal-unsigned $get:abort/disp8 + 54 73/jump-if-addr>= $get:abort/disp8 55 # if (string-equal?(key, *curr)) return curr+4 56 # . eax = string-equal?(key, *curr) 57 # . . push args @@ -124,7 +124,7 @@ if ('onhashchange' in window) { 63 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 64 # . if (eax != false) return eax = curr+4 65 3d/compare-eax-and 0/imm32/false - 66 74/jump-if-equal $get:mismatch/disp8 + 66 74/jump-if-= $get:mismatch/disp8 67 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 68 eb/jump $get:end/disp8 69 $get:mismatch: @@ -286,7 +286,7 @@ if ('onhashchange' in window) { 225 $get-slice:search-loop: 226 # if (curr >= max) abort 227 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx - 228 73/jump-if-greater-or-equal-unsigned $get-slice:abort/disp8 + 228 73/jump-if-addr>= $get-slice:abort/disp8 229 # if (slice-equal?(key, *curr)) return curr+4 230 # . eax = slice-equal?(key, *curr) 231 # . . push args @@ -298,7 +298,7 @@ if ('onhashchange' in window) { 237 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 238 # . if (eax != false) return eax = curr+4 239 3d/compare-eax-and 0/imm32/false - 240 74/jump-if-equal $get-slice:mismatch/disp8 + 240 74/jump-if-= $get-slice:mismatch/disp8 241 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 242 eb/jump $get-slice:end/disp8 243 $get-slice:mismatch: @@ -494,7 +494,7 @@ if ('onhashchange' in window) { 433 $get-or-insert:search-loop: 434 # if (curr >= max) break 435 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx - 436 73/jump-if-greater-or-equal-unsigned $get-or-insert:not-found/disp8 + 436 73/jump-if-addr>= $get-or-insert:not-found/disp8 437 # if (string-equal?(key, *curr)) return curr+4 438 # . eax = string-equal?(key, *curr) 439 # . . push args @@ -506,7 +506,7 @@ if ('onhashchange' in window) { 445 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 446 # . if (eax != false) return eax = curr+4 447 3d/compare-eax-and 0/imm32/false - 448 74/jump-if-equal $get-or-insert:mismatch/disp8 + 448 74/jump-if-= $get-or-insert:mismatch/disp8 449 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 450 eb/jump $get-or-insert:end/disp8 451 $get-or-insert:mismatch: @@ -520,7 +520,7 @@ if ('onhashchange' in window) { 459 # if (table->write >= table->length) abort 460 8b/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . . # copy *esi to ecx 461 3b/compare 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 8/disp8 . # compare ecx with *(esi+8) - 462 73/jump-if-greater-or-equal-unsigned $get-or-insert:abort/disp8 + 462 73/jump-if-addr>= $get-or-insert:abort/disp8 463 # zero-out(max, row-size) 464 # . . push args 465 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 0x10/disp8 . # push *(ebp+16) @@ -745,7 +745,7 @@ if ('onhashchange' in window) { 684 $leaky-get-or-insert-slice:search-loop: 685 # if (curr >= max) break 686 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx - 687 73/jump-if-greater-or-equal-unsigned $leaky-get-or-insert-slice:not-found/disp8 + 687 73/jump-if-addr>= $leaky-get-or-insert-slice:not-found/disp8 688 # if (slice-equal?(key, *curr)) return curr+4 689 # . eax = slice-equal?(key, *curr) 690 # . . push args @@ -757,7 +757,7 @@ if ('onhashchange' in window) { 696 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 697 # . if (eax != false) return eax = curr+4 698 3d/compare-eax-and 0/imm32/false - 699 74/jump-if-equal $leaky-get-or-insert-slice:mismatch/disp8 + 699 74/jump-if-= $leaky-get-or-insert-slice:mismatch/disp8 700 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 701 eb/jump $leaky-get-or-insert-slice:end/disp8 702 $leaky-get-or-insert-slice:mismatch: @@ -771,7 +771,7 @@ if ('onhashchange' in window) { 710 # if (table->write >= table->length) abort 711 8b/copy 0/mod/indirect 6/rm32/esi . . . 1/r32/ecx . . # copy *esi to ecx 712 3b/compare 1/mod/*+disp8 6/rm32/esi . . . 1/r32/ecx 8/disp8 . # compare ecx with *(esi+8) - 713 7d/jump-if-greater-or-equal $leaky-get-or-insert-slice:abort/disp8 + 713 7d/jump-if->= $leaky-get-or-insert-slice:abort/disp8 714 # zero-out(max, row-size) 715 # . . push args 716 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 0x10/disp8 . # push *(ebp+16) @@ -1015,7 +1015,7 @@ if ('onhashchange' in window) { 954 $get-or-stop:search-loop: 955 # if (curr >= max) stop(ed) 956 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx - 957 73/jump-if-greater-or-equal-unsigned $get-or-stop:stop/disp8 + 957 73/jump-if-addr>= $get-or-stop:stop/disp8 958 # if (string-equal?(key, *curr)) return curr+4 959 # . eax = string-equal?(key, *curr) 960 # . . push args @@ -1027,7 +1027,7 @@ if ('onhashchange' in window) { 966 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 967 # . if (eax != false) return eax = curr+4 968 3d/compare-eax-and 0/imm32/false - 969 74/jump-if-equal $get-or-stop:mismatch/disp8 + 969 74/jump-if-= $get-or-stop:mismatch/disp8 970 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 971 eb/jump $get-or-stop:end/disp8 972 $get-or-stop:mismatch: @@ -1231,7 +1231,7 @@ if ('onhashchange' in window) { 1170 $get-slice-or-stop:search-loop: 1171 # if (curr >= max) stop(ed) 1172 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx -1173 73/jump-if-greater-or-equal-unsigned $get-slice-or-stop:stop/disp8 +1173 73/jump-if-addr>= $get-slice-or-stop:stop/disp8 1174 # if (slice-equal?(key, *curr)) return curr+4 1175 # . eax = slice-equal?(key, *curr) 1176 # . . push args @@ -1243,7 +1243,7 @@ if ('onhashchange' in window) { 1182 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1183 # . if (eax != false) return eax = curr+4 1184 3d/compare-eax-and 0/imm32/false -1185 74/jump-if-equal $get-slice-or-stop:mismatch/disp8 +1185 74/jump-if-= $get-slice-or-stop:mismatch/disp8 1186 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 1187 eb/jump $get-slice-or-stop:end/disp8 1188 $get-slice-or-stop:mismatch: @@ -1467,7 +1467,7 @@ if ('onhashchange' in window) { 1406 $maybe-get:search-loop: 1407 # if (curr >= max) return null 1408 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx -1409 73/jump-if-greater-or-equal-unsigned $maybe-get:null/disp8 +1409 73/jump-if-addr>= $maybe-get:null/disp8 1410 # if (string-equal?(key, *curr)) return curr+4 1411 # . eax = string-equal?(key, *curr) 1412 # . . push args @@ -1479,7 +1479,7 @@ if ('onhashchange' in window) { 1418 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1419 # . if (eax != false) return eax = curr+4 1420 3d/compare-eax-and 0/imm32/false -1421 74/jump-if-equal $maybe-get:mismatch/disp8 +1421 74/jump-if-= $maybe-get:mismatch/disp8 1422 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 1423 eb/jump $maybe-get:end/disp8 1424 $maybe-get:mismatch: @@ -1614,7 +1614,7 @@ if ('onhashchange' in window) { 1553 $maybe-get-slice:search-loop: 1554 # if (curr >= max) return null 1555 39/compare 3/mod/direct 1/rm32/ecx . . . 2/r32/edx . . # compare ecx with edx -1556 73/jump-if-greater-or-equal-unsigned $maybe-get-slice:null/disp8 +1556 73/jump-if-addr>= $maybe-get-slice:null/disp8 1557 # if (slice-equal?(key, *curr)) return curr+4 1558 # . eax = slice-equal?(key, *curr) 1559 # . . push args @@ -1626,7 +1626,7 @@ if ('onhashchange' in window) { 1565 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp 1566 # . if (eax != false) return eax = curr+4 1567 3d/compare-eax-and 0/imm32/false -1568 74/jump-if-equal $maybe-get-slice:mismatch/disp8 +1568 74/jump-if-= $maybe-get-slice:mismatch/disp8 1569 8d/copy-address 1/mod/*+disp8 1/rm32/ecx . . . 0/r32/eax 4/disp8 . # copy ecx+4 to eax 1570 eb/jump $maybe-get-slice:end/disp8 1571 $maybe-get-slice:mismatch: -- cgit 1.4.1-2-gfad0