diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-27 00:39:46 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-27 00:39:46 -0800 |
commit | 2104d1a75b76dbffc0b15a96c98d94e7a16594e8 (patch) | |
tree | 2a839b86e76431a9bbe4bf155f7411171a26d7f8 /html/081table.subx.html | |
parent | 71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff) | |
download | mu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz |
5925
Diffstat (limited to 'html/081table.subx.html')
-rw-r--r-- | html/081table.subx.html | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/html/081table.subx.html b/html/081table.subx.html index 6d456997..673cd16e 100644 --- a/html/081table.subx.html +++ b/html/081table.subx.html @@ -85,7 +85,7 @@ if ('onhashchange' in window) { <span id="L24" class="LineNr"> 24 </span> <span id="L25" class="LineNr"> 25 </span><span class="subxComment"># if no row is found, abort</span> <span id="L26" class="LineNr"> 26 </span><span class="subxComment"># type string_key = (addr array byte)</span> -<span id="L27" class="LineNr"> 27 </span><span class="subxFunction">get</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int, abort-message-prefix : (addr array byte) -> eax : (addr T)</span> +<span id="L27" class="LineNr"> 27 </span><span class="subxFunction">get</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int, abort-message-prefix: (addr array byte) -> eax: (addr T)</span> <span id="L28" class="LineNr"> 28 </span> <span class="subxComment"># pseudocode:</span> <span id="L29" class="LineNr"> 29 </span> <span class="subxComment"># curr = table->data</span> <span id="L30" class="LineNr"> 30 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -104,9 +104,9 @@ if ('onhashchange' in window) { <span id="L43" class="LineNr"> 43 </span> 56/push-esi <span id="L44" class="LineNr"> 44 </span> <span class="subxComment"># esi = table</span> <span id="L45" class="LineNr"> 45 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L46" class="LineNr"> 46 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L46" class="LineNr"> 46 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L47" class="LineNr"> 47 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L48" class="LineNr"> 48 </span> <span class="subxComment"># var max/edx : (addr byte) = &table->data[table->write]</span> +<span id="L48" class="LineNr"> 48 </span> <span class="subxComment"># var max/edx: (addr byte) = &table->data[table->write]</span> <span id="L49" class="LineNr"> 49 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L50" class="LineNr"> 50 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L51" class="LineNr"> 51 </span><span class="Constant">$get:search-loop</span>: @@ -186,7 +186,7 @@ if ('onhashchange' in window) { <span id="L125" class="LineNr"> 125 </span> 55/push-ebp <span id="L126" class="LineNr"> 126 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> <span id="L127" class="LineNr"> 127 </span> <span class="subxH1Comment"># - setup: create a table with a couple of keys</span> -<span id="L128" class="LineNr"> 128 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L128" class="LineNr"> 128 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L129" class="LineNr"> 129 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L130" class="LineNr"> 130 </span> 68/push 0x10/imm32/length <span id="L131" class="LineNr"> 131 </span> 68/push 0/imm32/read @@ -259,7 +259,7 @@ if ('onhashchange' in window) { <span id="L198" class="LineNr"> 198 </span> c3/return <span id="L199" class="LineNr"> 199 </span> <span id="L200" class="LineNr"> 200 </span><span class="subxComment"># if no row is found, abort</span> -<span id="L201" class="LineNr"> 201 </span><span class="subxFunction">get-slice</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : (addr slice), row-size : int, abort-message-prefix : (addr array byte) -> eax : (addr T)</span> +<span id="L201" class="LineNr"> 201 </span><span class="subxFunction">get-slice</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: (addr slice), row-size: int, abort-message-prefix: (addr array byte) -> eax: (addr T)</span> <span id="L202" class="LineNr"> 202 </span> <span class="subxComment"># pseudocode:</span> <span id="L203" class="LineNr"> 203 </span> <span class="subxComment"># curr = table->data</span> <span id="L204" class="LineNr"> 204 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -278,9 +278,9 @@ if ('onhashchange' in window) { <span id="L217" class="LineNr"> 217 </span> 56/push-esi <span id="L218" class="LineNr"> 218 </span> <span class="subxComment"># esi = table</span> <span id="L219" class="LineNr"> 219 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L220" class="LineNr"> 220 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L220" class="LineNr"> 220 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L221" class="LineNr"> 221 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L222" class="LineNr"> 222 </span> <span class="subxComment"># var max/edx : (addr byte) = &table->data[table->write]</span> +<span id="L222" class="LineNr"> 222 </span> <span class="subxComment"># var max/edx: (addr byte) = &table->data[table->write]</span> <span id="L223" class="LineNr"> 223 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L224" class="LineNr"> 224 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L225" class="LineNr"> 225 </span><span class="Constant">$get-slice:search-loop</span>: @@ -367,7 +367,7 @@ if ('onhashchange' in window) { <span id="L306" class="LineNr"> 306 </span> 55/push-ebp <span id="L307" class="LineNr"> 307 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> <span id="L308" class="LineNr"> 308 </span> <span class="subxH1Comment"># - setup: create a table with a couple of keys</span> -<span id="L309" class="LineNr"> 309 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L309" class="LineNr"> 309 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L310" class="LineNr"> 310 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L311" class="LineNr"> 311 </span> 68/push 0x10/imm32/length <span id="L312" class="LineNr"> 312 </span> 68/push 0/imm32/read @@ -397,7 +397,7 @@ if ('onhashchange' in window) { <span id="L336" class="LineNr"> 336 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> <span id="L337" class="LineNr"> 337 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+edx+4 to edx</span> <span id="L338" class="LineNr"> 338 </span> 05/add-to-eax 4/imm32 -<span id="L339" class="LineNr"> 339 </span> <span class="subxComment"># var slice/edx : slice = {eax, edx}</span> +<span id="L339" class="LineNr"> 339 </span> <span class="subxComment"># var slice/edx: slice = {eax, edx}</span> <span id="L340" class="LineNr"> 340 </span> 52/push-edx <span id="L341" class="LineNr"> 341 </span> 50/push-eax <span id="L342" class="LineNr"> 342 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -427,7 +427,7 @@ if ('onhashchange' in window) { <span id="L366" class="LineNr"> 366 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> <span id="L367" class="LineNr"> 367 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+edx+4 to edx</span> <span id="L368" class="LineNr"> 368 </span> 05/add-to-eax 4/imm32 -<span id="L369" class="LineNr"> 369 </span> <span class="subxComment"># var slice/edx : slice = {eax, edx}</span> +<span id="L369" class="LineNr"> 369 </span> <span class="subxComment"># var slice/edx: slice = {eax, edx}</span> <span id="L370" class="LineNr"> 370 </span> 52/push-edx <span id="L371" class="LineNr"> 371 </span> 50/push-eax <span id="L372" class="LineNr"> 372 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -462,7 +462,7 @@ if ('onhashchange' in window) { <span id="L401" class="LineNr"> 401 </span><span class="subxComment"># return the address of the value</span> <span id="L402" class="LineNr"> 402 </span><span class="subxComment"># Beware: assume keys are immutable; they're inserted by reference</span> <span id="L403" class="LineNr"> 403 </span><span class="subxComment"># TODO: pass in an allocation descriptor</span> -<span id="L404" class="LineNr"> 404 </span><span class="subxFunction">get-or-insert</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int -> eax : (addr T)</span> +<span id="L404" class="LineNr"> 404 </span><span class="subxFunction">get-or-insert</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int -> eax: (addr T)</span> <span id="L405" class="LineNr"> 405 </span> <span class="subxComment"># pseudocode:</span> <span id="L406" class="LineNr"> 406 </span> <span class="subxComment"># curr = table->data</span> <span id="L407" class="LineNr"> 407 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -486,9 +486,9 @@ if ('onhashchange' in window) { <span id="L425" class="LineNr"> 425 </span> 56/push-esi <span id="L426" class="LineNr"> 426 </span> <span class="subxComment"># esi = table</span> <span id="L427" class="LineNr"> 427 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L428" class="LineNr"> 428 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L428" class="LineNr"> 428 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L429" class="LineNr"> 429 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L430" class="LineNr"> 430 </span> <span class="subxComment"># var max/edx : (addr string_key) = &table->data[table->write]</span> +<span id="L430" class="LineNr"> 430 </span> <span class="subxComment"># var max/edx: (addr string_key) = &table->data[table->write]</span> <span id="L431" class="LineNr"> 431 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L432" class="LineNr"> 432 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L433" class="LineNr"> 433 </span><span class="Constant">$get-or-insert:search-loop</span>: @@ -573,7 +573,7 @@ if ('onhashchange' in window) { <span id="L512" class="LineNr"> 512 </span> <span class="subxS1Comment"># . prologue</span> <span id="L513" class="LineNr"> 513 </span> 55/push-ebp <span id="L514" class="LineNr"> 514 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> -<span id="L515" class="LineNr"> 515 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L515" class="LineNr"> 515 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L516" class="LineNr"> 516 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L517" class="LineNr"> 517 </span> 68/push 0x10/imm32/length <span id="L518" class="LineNr"> 518 </span> 68/push 0/imm32/read @@ -713,7 +713,7 @@ if ('onhashchange' in window) { <span id="L652" class="LineNr"> 652 </span><span class="subxComment"># if there are no rows free, abort</span> <span id="L653" class="LineNr"> 653 </span><span class="subxComment"># WARNING: leaks memory</span> <span id="L654" class="LineNr"> 654 </span><span class="subxComment"># TODO: pass in an allocation descriptor</span> -<span id="L655" class="LineNr"> 655 </span><span class="subxFunction">leaky-get-or-insert-slice</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : (addr slice), row-size : int -> eax : (addr T)</span> +<span id="L655" class="LineNr"> 655 </span><span class="subxFunction">leaky-get-or-insert-slice</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: (addr slice), row-size: int -> eax: (addr T)</span> <span id="L656" class="LineNr"> 656 </span> <span class="subxComment"># pseudocode:</span> <span id="L657" class="LineNr"> 657 </span> <span class="subxComment"># curr = table->data</span> <span id="L658" class="LineNr"> 658 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -737,9 +737,9 @@ if ('onhashchange' in window) { <span id="L676" class="LineNr"> 676 </span> 56/push-esi <span id="L677" class="LineNr"> 677 </span> <span class="subxComment"># esi = table</span> <span id="L678" class="LineNr"> 678 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L679" class="LineNr"> 679 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L679" class="LineNr"> 679 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L680" class="LineNr"> 680 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L681" class="LineNr"> 681 </span> <span class="subxComment"># var max/edx : (addr string_key) = &table->data[table->write]</span> +<span id="L681" class="LineNr"> 681 </span> <span class="subxComment"># var max/edx: (addr string_key) = &table->data[table->write]</span> <span id="L682" class="LineNr"> 682 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L683" class="LineNr"> 683 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L684" class="LineNr"> 684 </span><span class="Constant">$leaky-get-or-insert-slice:search-loop</span>: @@ -830,7 +830,7 @@ if ('onhashchange' in window) { <span id="L769" class="LineNr"> 769 </span> <span class="subxS1Comment"># . prologue</span> <span id="L770" class="LineNr"> 770 </span> 55/push-ebp <span id="L771" class="LineNr"> 771 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> -<span id="L772" class="LineNr"> 772 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L772" class="LineNr"> 772 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L773" class="LineNr"> 773 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L774" class="LineNr"> 774 </span> 68/push 0x10/imm32/length <span id="L775" class="LineNr"> 775 </span> 68/push 0/imm32/read @@ -841,7 +841,7 @@ if ('onhashchange' in window) { <span id="L780" class="LineNr"> 780 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> <span id="L781" class="LineNr"> 781 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+edx+4 to edx</span> <span id="L782" class="LineNr"> 782 </span> 05/add-to-eax 4/imm32 -<span id="L783" class="LineNr"> 783 </span> <span class="subxComment"># var slice/edx : slice = {eax, edx}</span> +<span id="L783" class="LineNr"> 783 </span> <span class="subxComment"># var slice/edx: slice = {eax, edx}</span> <span id="L784" class="LineNr"> 784 </span> 52/push-edx <span id="L785" class="LineNr"> 785 </span> 50/push-eax <span id="L786" class="LineNr"> 786 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -934,7 +934,7 @@ if ('onhashchange' in window) { <span id="L873" class="LineNr"> 873 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> <span id="L874" class="LineNr"> 874 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+edx+4 to edx</span> <span id="L875" class="LineNr"> 875 </span> 05/add-to-eax 4/imm32 -<span id="L876" class="LineNr"> 876 </span> <span class="subxComment"># var slice/edx : slice = {eax, edx}</span> +<span id="L876" class="LineNr"> 876 </span> <span class="subxComment"># var slice/edx: slice = {eax, edx}</span> <span id="L877" class="LineNr"> 877 </span> 52/push-edx <span id="L878" class="LineNr"> 878 </span> 50/push-eax <span id="L879" class="LineNr"> 879 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -985,9 +985,9 @@ if ('onhashchange' in window) { <span id="L924" class="LineNr"> 924 </span> c3/return <span id="L925" class="LineNr"> 925 </span> <span id="L926" class="LineNr"> 926 </span><span class="subxComment"># if no row is found, stop(ed)</span> -<span id="L927" class="LineNr"> 927 </span><span class="subxFunction">get-or-stop</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int,</span> -<span id="L928" class="LineNr"> 928 </span> <span class="subxComment"># abort-message-prefix : (addr array byte), err : (addr buffered-file), ed : (addr exit-descriptor)</span> -<span id="L929" class="LineNr"> 929 </span> <span class="subxComment"># -> eax : (addr T)</span> +<span id="L927" class="LineNr"> 927 </span><span class="subxFunction">get-or-stop</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int,</span> +<span id="L928" class="LineNr"> 928 </span> <span class="subxComment"># abort-message-prefix: (addr array byte), err: (addr buffered-file), ed: (addr exit-descriptor)</span> +<span id="L929" class="LineNr"> 929 </span> <span class="subxComment"># -> eax: (addr T)</span> <span id="L930" class="LineNr"> 930 </span> <span class="subxComment"># pseudocode:</span> <span id="L931" class="LineNr"> 931 </span> <span class="subxComment"># curr = table->data</span> <span id="L932" class="LineNr"> 932 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -1007,9 +1007,9 @@ if ('onhashchange' in window) { <span id="L946" class="LineNr"> 946 </span> 56/push-esi <span id="L947" class="LineNr"> 947 </span> <span class="subxComment"># esi = table</span> <span id="L948" class="LineNr"> 948 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L949" class="LineNr"> 949 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L949" class="LineNr"> 949 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L950" class="LineNr"> 950 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L951" class="LineNr"> 951 </span> <span class="subxComment"># var max/edx : (addr byte) = &table->data[table->write]</span> +<span id="L951" class="LineNr"> 951 </span> <span class="subxComment"># var max/edx: (addr byte) = &table->data[table->write]</span> <span id="L952" class="LineNr"> 952 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L953" class="LineNr"> 953 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L954" class="LineNr"> 954 </span><span class="Constant">$get-or-stop:search-loop</span>: @@ -1112,13 +1112,13 @@ if ('onhashchange' in window) { <span id="L1051" class="LineNr">1051 </span> e8/call <a href='055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1052" class="LineNr">1052 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1053" class="LineNr">1053 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/imm32 <span class="subxComment"># add to esp</span> -<span id="L1054" class="LineNr">1054 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L1054" class="LineNr">1054 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L1055" class="LineNr">1055 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L1056" class="LineNr">1056 </span> 68/push 0x10/imm32/length <span id="L1057" class="LineNr">1057 </span> 68/push 0/imm32/read <span id="L1058" class="LineNr">1058 </span> 68/push 0/imm32/write <span id="L1059" class="LineNr">1059 </span> 89/copy 3/mod/direct 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ecx</span> -<span id="L1060" class="LineNr">1060 </span> <span class="subxComment"># var ed/edx : exit-descriptor</span> +<span id="L1060" class="LineNr">1060 </span> <span class="subxComment"># var ed/edx: exit-descriptor</span> <span id="L1061" class="LineNr">1061 </span> 68/push 0/imm32 <span id="L1062" class="LineNr">1062 </span> 68/push 0/imm32 <span id="L1063" class="LineNr">1063 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -1201,9 +1201,9 @@ if ('onhashchange' in window) { <span id="L1140" class="LineNr">1140 </span> c3/return <span id="L1141" class="LineNr">1141 </span> <span id="L1142" class="LineNr">1142 </span><span class="subxComment"># if no row is found, stop(ed)</span> -<span id="L1143" class="LineNr">1143 </span><span class="subxFunction">get-slice-or-stop</span>: <span class="subxComment"># table : (addr stream {string_key, _}), key : (addr slice), row-size : int,</span> -<span id="L1144" class="LineNr">1144 </span> <span class="subxComment"># abort-message-prefix : (addr string), err : (addr buffered-file), ed : (addr exit-descriptor)</span> -<span id="L1145" class="LineNr">1145 </span> <span class="subxComment"># -> eax : (addr _)</span> +<span id="L1143" class="LineNr">1143 </span><span class="subxFunction">get-slice-or-stop</span>: <span class="subxComment"># table: (addr stream {string_key, _}), key: (addr slice), row-size: int,</span> +<span id="L1144" class="LineNr">1144 </span> <span class="subxComment"># abort-message-prefix: (addr string), err: (addr buffered-file), ed: (addr exit-descriptor)</span> +<span id="L1145" class="LineNr">1145 </span> <span class="subxComment"># -> eax: (addr _)</span> <span id="L1146" class="LineNr">1146 </span> <span class="subxComment"># pseudocode:</span> <span id="L1147" class="LineNr">1147 </span> <span class="subxComment"># curr = table->data</span> <span id="L1148" class="LineNr">1148 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -1223,9 +1223,9 @@ if ('onhashchange' in window) { <span id="L1162" class="LineNr">1162 </span> 56/push-esi <span id="L1163" class="LineNr">1163 </span> <span class="subxComment"># esi = table</span> <span id="L1164" class="LineNr">1164 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L1165" class="LineNr">1165 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L1165" class="LineNr">1165 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L1166" class="LineNr">1166 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L1167" class="LineNr">1167 </span> <span class="subxComment"># var max/edx : (addr byte) = &table->data[table->write]</span> +<span id="L1167" class="LineNr">1167 </span> <span class="subxComment"># var max/edx: (addr byte) = &table->data[table->write]</span> <span id="L1168" class="LineNr">1168 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L1169" class="LineNr">1169 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L1170" class="LineNr">1170 </span><span class="Constant">$get-slice-or-stop:search-loop</span>: @@ -1328,17 +1328,17 @@ if ('onhashchange' in window) { <span id="L1267" class="LineNr">1267 </span> e8/call <a href='055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1268" class="LineNr">1268 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1269" class="LineNr">1269 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/imm32 <span class="subxComment"># add to esp</span> -<span id="L1270" class="LineNr">1270 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L1270" class="LineNr">1270 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L1271" class="LineNr">1271 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L1272" class="LineNr">1272 </span> 68/push 0x10/imm32/length <span id="L1273" class="LineNr">1273 </span> 68/push 0/imm32/read <span id="L1274" class="LineNr">1274 </span> 68/push 0/imm32/write <span id="L1275" class="LineNr">1275 </span> 89/copy 3/mod/direct 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ecx</span> -<span id="L1276" class="LineNr">1276 </span> <span class="subxComment"># var ed/edx : exit-descriptor</span> +<span id="L1276" class="LineNr">1276 </span> <span class="subxComment"># var ed/edx: exit-descriptor</span> <span id="L1277" class="LineNr">1277 </span> 68/push 0/imm32 <span id="L1278" class="LineNr">1278 </span> 68/push 0/imm32 <span id="L1279" class="LineNr">1279 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> -<span id="L1280" class="LineNr">1280 </span> <span class="subxComment"># var slice/ebx : slice = "code"</span> +<span id="L1280" class="LineNr">1280 </span> <span class="subxComment"># var slice/ebx: slice = "code"</span> <span id="L1281" class="LineNr">1281 </span> <span class="subxS1Comment"># . (eax..ebx) = "code"</span> <span id="L1282" class="LineNr">1282 </span> b8/copy-to-eax <span class="Constant">"code"</span>/imm32 <span id="L1283" class="LineNr">1283 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ebx</span> @@ -1440,7 +1440,7 @@ if ('onhashchange' in window) { <span id="L1379" class="LineNr">1379 </span> c3/return <span id="L1380" class="LineNr">1380 </span> <span id="L1381" class="LineNr">1381 </span><span class="subxComment"># if no row is found, return null (0)</span> -<span id="L1382" class="LineNr">1382 </span><span class="subxFunction">maybe-get</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int -> eax : (addr T)</span> +<span id="L1382" class="LineNr">1382 </span><span class="subxFunction">maybe-get</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int -> eax: (addr T)</span> <span id="L1383" class="LineNr">1383 </span> <span class="subxComment"># pseudocode:</span> <span id="L1384" class="LineNr">1384 </span> <span class="subxComment"># curr = table->data</span> <span id="L1385" class="LineNr">1385 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -1459,9 +1459,9 @@ if ('onhashchange' in window) { <span id="L1398" class="LineNr">1398 </span> 56/push-esi <span id="L1399" class="LineNr">1399 </span> <span class="subxComment"># esi = table</span> <span id="L1400" class="LineNr">1400 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L1401" class="LineNr">1401 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L1401" class="LineNr">1401 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L1402" class="LineNr">1402 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L1403" class="LineNr">1403 </span> <span class="subxComment"># var max/edx : (addr byte) = &table->data[table->write]</span> +<span id="L1403" class="LineNr">1403 </span> <span class="subxComment"># var max/edx: (addr byte) = &table->data[table->write]</span> <span id="L1404" class="LineNr">1404 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L1405" class="LineNr">1405 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L1406" class="LineNr">1406 </span><span class="Constant">$maybe-get:search-loop</span>: @@ -1504,7 +1504,7 @@ if ('onhashchange' in window) { <span id="L1443" class="LineNr">1443 </span> 55/push-ebp <span id="L1444" class="LineNr">1444 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> <span id="L1445" class="LineNr">1445 </span> <span class="subxH1Comment"># - setup: create a table with one row</span> -<span id="L1446" class="LineNr">1446 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L1446" class="LineNr">1446 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L1447" class="LineNr">1447 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L1448" class="LineNr">1448 </span> 68/push 0x10/imm32/length <span id="L1449" class="LineNr">1449 </span> 68/push 0/imm32/read @@ -1587,7 +1587,7 @@ if ('onhashchange' in window) { <span id="L1526" class="LineNr">1526 </span> c3/return <span id="L1527" class="LineNr">1527 </span> <span id="L1528" class="LineNr">1528 </span><span class="subxComment"># if no row is found, return null (0)</span> -<span id="L1529" class="LineNr">1529 </span><span class="subxFunction">maybe-get-slice</span>: <span class="subxComment"># table : (addr stream {string_key, T}), key : (addr slice), row-size : int -> eax : (addr T)</span> +<span id="L1529" class="LineNr">1529 </span><span class="subxFunction">maybe-get-slice</span>: <span class="subxComment"># table: (addr stream {string_key, T}), key: (addr slice), row-size: int -> eax: (addr T)</span> <span id="L1530" class="LineNr">1530 </span> <span class="subxComment"># pseudocode:</span> <span id="L1531" class="LineNr">1531 </span> <span class="subxComment"># curr = table->data</span> <span id="L1532" class="LineNr">1532 </span> <span class="subxComment"># max = &table->data[table->write]</span> @@ -1606,9 +1606,9 @@ if ('onhashchange' in window) { <span id="L1545" class="LineNr">1545 </span> 56/push-esi <span id="L1546" class="LineNr">1546 </span> <span class="subxComment"># esi = table</span> <span id="L1547" class="LineNr">1547 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> -<span id="L1548" class="LineNr">1548 </span> <span class="subxComment"># var curr/ecx : (addr string_key) = table->data</span> +<span id="L1548" class="LineNr">1548 </span> <span class="subxComment"># var curr/ecx: (addr string_key) = table->data</span> <span id="L1549" class="LineNr">1549 </span> 8d/copy-address 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy esi+12 to ecx</span> -<span id="L1550" class="LineNr">1550 </span> <span class="subxComment"># var max/edx : (addr byte) = &table->data[table->write]</span> +<span id="L1550" class="LineNr">1550 </span> <span class="subxComment"># var max/edx: (addr byte) = &table->data[table->write]</span> <span id="L1551" class="LineNr">1551 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> <span id="L1552" class="LineNr">1552 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 1/base/ecx 2/index/edx <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ecx+edx to edx</span> <span id="L1553" class="LineNr">1553 </span><span class="Constant">$maybe-get-slice:search-loop</span>: @@ -1651,7 +1651,7 @@ if ('onhashchange' in window) { <span id="L1590" class="LineNr">1590 </span> 55/push-ebp <span id="L1591" class="LineNr">1591 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> <span id="L1592" class="LineNr">1592 </span> <span class="subxH1Comment"># - setup: create a table with one row</span> -<span id="L1593" class="LineNr">1593 </span> <span class="subxComment"># var table/ecx : (stream {string, number} 16) # 2 rows * 8 bytes/row</span> +<span id="L1593" class="LineNr">1593 </span> <span class="subxComment"># var table/ecx: (stream {string, number} 16) # 2 rows * 8 bytes/row</span> <span id="L1594" class="LineNr">1594 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x10/imm32 <span class="subxComment"># subtract from esp</span> <span id="L1595" class="LineNr">1595 </span> 68/push 0x10/imm32/length <span id="L1596" class="LineNr">1596 </span> 68/push 0/imm32/read @@ -1673,7 +1673,7 @@ if ('onhashchange' in window) { <span id="L1612" class="LineNr">1612 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> <span id="L1613" class="LineNr">1613 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+edx+4 to edx</span> <span id="L1614" class="LineNr">1614 </span> 05/add-to-eax 4/imm32 -<span id="L1615" class="LineNr">1615 </span> <span class="subxComment"># var slice/edx : slice = {eax, edx}</span> +<span id="L1615" class="LineNr">1615 </span> <span class="subxComment"># var slice/edx: slice = {eax, edx}</span> <span id="L1616" class="LineNr">1616 </span> 52/push-edx <span id="L1617" class="LineNr">1617 </span> 50/push-eax <span id="L1618" class="LineNr">1618 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -1723,7 +1723,7 @@ if ('onhashchange' in window) { <span id="L1662" class="LineNr">1662 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> <span id="L1663" class="LineNr">1663 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 2/index/edx <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+edx+4 to edx</span> <span id="L1664" class="LineNr">1664 </span> 05/add-to-eax 4/imm32 -<span id="L1665" class="LineNr">1665 </span> <span class="subxComment"># var slice/edx : slice = {eax, edx}</span> +<span id="L1665" class="LineNr">1665 </span> <span class="subxComment"># var slice/edx: slice = {eax, edx}</span> <span id="L1666" class="LineNr">1666 </span> 52/push-edx <span id="L1667" class="LineNr">1667 </span> 50/push-eax <span id="L1668" class="LineNr">1668 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> |