diff options
Diffstat (limited to 'html/072slice.subx.html')
-rw-r--r-- | html/072slice.subx.html | 96 |
1 files changed, 48 insertions, 48 deletions
diff --git a/html/072slice.subx.html b/html/072slice.subx.html index 4e128127..2de664ab 100644 --- a/html/072slice.subx.html +++ b/html/072slice.subx.html @@ -67,7 +67,7 @@ if ('onhashchange' in window) { <span id="L6" class="LineNr"> 6 </span><span class="subxS1Comment"># . op subop mod rm32 base index scale r32</span> <span id="L7" class="LineNr"> 7 </span><span class="subxS1Comment"># . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes</span> <span id="L8" class="LineNr"> 8 </span> -<span id="L9" class="LineNr"> 9 </span><span class="subxFunction">slice-empty?</span>: <span class="subxComment"># s : (addr slice) -> eax : boolean</span> +<span id="L9" class="LineNr"> 9 </span><span class="subxFunction">slice-empty?</span>: <span class="subxComment"># s: (addr slice) -> eax: boolean</span> <span id="L10" class="LineNr"> 10 </span> <span class="subxS1Comment"># . prologue</span> <span id="L11" class="LineNr"> 11 </span> 55/push-ebp <span id="L12" class="LineNr"> 12 </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> @@ -95,7 +95,7 @@ if ('onhashchange' in window) { <span id="L34" class="LineNr"> 34 </span> <span class="subxS1Comment"># . prologue</span> <span id="L35" class="LineNr"> 35 </span> 55/push-ebp <span id="L36" class="LineNr"> 36 </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="L37" class="LineNr"> 37 </span> <span class="subxComment"># var slice/ecx : slice = {34, 34}</span> +<span id="L37" class="LineNr"> 37 </span> <span class="subxComment"># var slice/ecx: slice = {34, 34}</span> <span id="L38" class="LineNr"> 38 </span> 68/push 34/imm32/end <span id="L39" class="LineNr"> 39 </span> 68/push 34/imm32/start <span id="L40" class="LineNr"> 40 </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> @@ -124,7 +124,7 @@ if ('onhashchange' in window) { <span id="L63" class="LineNr"> 63 </span> <span class="subxS1Comment"># . prologue</span> <span id="L64" class="LineNr"> 64 </span> 55/push-ebp <span id="L65" class="LineNr"> 65 </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="L66" class="LineNr"> 66 </span> <span class="subxComment"># var slice/ecx : slice = {32, 34}</span> +<span id="L66" class="LineNr"> 66 </span> <span class="subxComment"># var slice/ecx: slice = {32, 34}</span> <span id="L67" class="LineNr"> 67 </span> 68/push 34/imm32/end <span id="L68" class="LineNr"> 68 </span> 68/push 32/imm32/start <span id="L69" class="LineNr"> 69 </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> @@ -153,7 +153,7 @@ if ('onhashchange' in window) { <span id="L92" class="LineNr"> 92 </span> <span class="subxS1Comment"># . prologue</span> <span id="L93" class="LineNr"> 93 </span> 55/push-ebp <span id="L94" class="LineNr"> 94 </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="L95" class="LineNr"> 95 </span> <span class="subxComment"># var slice/ecx : slice = {34, 32}</span> +<span id="L95" class="LineNr"> 95 </span> <span class="subxComment"># var slice/ecx: slice = {34, 32}</span> <span id="L96" class="LineNr"> 96 </span> 68/push 32/imm32/end <span id="L97" class="LineNr"> 97 </span> 68/push 34/imm32/start <span id="L98" class="LineNr"> 98 </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> @@ -178,7 +178,7 @@ if ('onhashchange' in window) { <span id="L117" class="LineNr"> 117 </span> 5d/pop-to-ebp <span id="L118" class="LineNr"> 118 </span> c3/return <span id="L119" class="LineNr"> 119 </span> -<span id="L120" class="LineNr"> 120 </span><span class="subxFunction">slice-equal?</span>: <span class="subxComment"># s : (addr slice), p : (addr array byte) -> eax : boolean</span> +<span id="L120" class="LineNr"> 120 </span><span class="subxFunction">slice-equal?</span>: <span class="subxComment"># s: (addr slice), p: (addr array byte) -> eax: boolean</span> <span id="L121" class="LineNr"> 121 </span> <span class="subxComment"># pseudocode:</span> <span id="L122" class="LineNr"> 122 </span> <span class="subxComment"># if (p == 0) return (s == 0)</span> <span id="L123" class="LineNr"> 123 </span> <span class="subxComment"># currs = s->start</span> @@ -208,11 +208,11 @@ if ('onhashchange' in window) { <span id="L147" class="LineNr"> 147 </span> 56/push-esi <span id="L148" class="LineNr"> 148 </span> <span class="subxComment"># esi = s</span> <span id="L149" class="LineNr"> 149 </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="L150" class="LineNr"> 150 </span> <span class="subxComment"># var currs/edx : (addr byte) = s->start</span> +<span id="L150" class="LineNr"> 150 </span> <span class="subxComment"># var currs/edx: (addr byte) = s->start</span> <span id="L151" class="LineNr"> 151 </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="L152" class="LineNr"> 152 </span> <span class="subxComment"># var maxs/esi : (addr byte) = s->end</span> +<span id="L152" class="LineNr"> 152 </span> <span class="subxComment"># var maxs/esi: (addr byte) = s->end</span> <span id="L153" class="LineNr"> 153 </span> 8b/copy 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(esi+4) to esi</span> -<span id="L154" class="LineNr"> 154 </span> <span class="subxComment"># var slen/eax : int = maxs - currs</span> +<span id="L154" class="LineNr"> 154 </span> <span class="subxComment"># var slen/eax: int = maxs - currs</span> <span id="L155" class="LineNr"> 155 </span> 89/copy 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esi to eax</span> <span id="L156" class="LineNr"> 156 </span> 29/subtract 3/mod/direct 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"># subtract edx from eax</span> <span id="L157" class="LineNr"> 157 </span> <span class="subxComment"># ebx = p</span> @@ -229,11 +229,11 @@ if ('onhashchange' in window) { <span id="L168" class="LineNr"> 168 </span> <span class="subxComment"># if (slen != p->length) return false</span> <span id="L169" class="LineNr"> 169 </span> 39/compare 0/mod/indirect 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># compare *ebx and eax</span> <span id="L170" class="LineNr"> 170 </span> 75/jump-if-!= $slice-equal?:false/disp8 -<span id="L171" class="LineNr"> 171 </span> <span class="subxComment"># var currp/ebx : (addr byte) = p->data</span> +<span id="L171" class="LineNr"> 171 </span> <span class="subxComment"># var currp/ebx: (addr byte) = p->data</span> <span id="L172" class="LineNr"> 172 </span> 81 0/subop/add 3/mod/direct 3/rm32/ebx <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 ebx</span> -<span id="L173" class="LineNr"> 173 </span> <span class="subxComment"># var c1/eax : byte = 0</span> +<span id="L173" class="LineNr"> 173 </span> <span class="subxComment"># var c1/eax: byte = 0</span> <span id="L174" class="LineNr"> 174 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> -<span id="L175" class="LineNr"> 175 </span> <span class="subxComment"># var c2/ecx : byte = 0</span> +<span id="L175" class="LineNr"> 175 </span> <span class="subxComment"># var c2/ecx: byte = 0</span> <span id="L176" class="LineNr"> 176 </span> 31/xor 3/mod/direct 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear ecx</span> <span id="L177" class="LineNr"> 177 </span><span class="Constant">$slice-equal?:loop</span>: <span id="L178" class="LineNr"> 178 </span> <span class="subxComment"># if (currs >= maxs) return true</span> @@ -277,7 +277,7 @@ if ('onhashchange' in window) { <span id="L216" class="LineNr"> 216 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L217" class="LineNr"> 217 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L218" class="LineNr"> 218 </span> 05/add-to-eax 4/imm32 -<span id="L219" class="LineNr"> 219 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L219" class="LineNr"> 219 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L220" class="LineNr"> 220 </span> 51/push-ecx <span id="L221" class="LineNr"> 221 </span> 50/push-eax <span id="L222" class="LineNr"> 222 </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> @@ -313,7 +313,7 @@ if ('onhashchange' in window) { <span id="L252" class="LineNr"> 252 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L253" class="LineNr"> 253 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L254" class="LineNr"> 254 </span> 05/add-to-eax 4/imm32 -<span id="L255" class="LineNr"> 255 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L255" class="LineNr"> 255 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L256" class="LineNr"> 256 </span> 51/push-ecx <span id="L257" class="LineNr"> 257 </span> 50/push-eax <span id="L258" class="LineNr"> 258 </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> @@ -349,7 +349,7 @@ if ('onhashchange' in window) { <span id="L288" class="LineNr"> 288 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L289" class="LineNr"> 289 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L290" class="LineNr"> 290 </span> 05/add-to-eax 4/imm32 -<span id="L291" class="LineNr"> 291 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L291" class="LineNr"> 291 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L292" class="LineNr"> 292 </span> 51/push-ecx <span id="L293" class="LineNr"> 293 </span> 50/push-eax <span id="L294" class="LineNr"> 294 </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> @@ -385,7 +385,7 @@ if ('onhashchange' in window) { <span id="L324" class="LineNr"> 324 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L325" class="LineNr"> 325 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L326" class="LineNr"> 326 </span> 05/add-to-eax 4/imm32 -<span id="L327" class="LineNr"> 327 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L327" class="LineNr"> 327 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L328" class="LineNr"> 328 </span> 51/push-ecx <span id="L329" class="LineNr"> 329 </span> 50/push-eax <span id="L330" class="LineNr"> 330 </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> @@ -416,7 +416,7 @@ if ('onhashchange' in window) { <span id="L355" class="LineNr"> 355 </span> <span class="subxS1Comment"># . prologue</span> <span id="L356" class="LineNr"> 356 </span> 55/push-ebp <span id="L357" class="LineNr"> 357 </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="L358" class="LineNr"> 358 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L358" class="LineNr"> 358 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L359" class="LineNr"> 359 </span> 68/push 0/imm32/end <span id="L360" class="LineNr"> 360 </span> 68/push 0/imm32/start <span id="L361" class="LineNr"> 361 </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> @@ -452,7 +452,7 @@ if ('onhashchange' in window) { <span id="L391" class="LineNr"> 391 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L392" class="LineNr"> 392 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L393" class="LineNr"> 393 </span> 05/add-to-eax 4/imm32 -<span id="L394" class="LineNr"> 394 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L394" class="LineNr"> 394 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L395" class="LineNr"> 395 </span> 51/push-ecx <span id="L396" class="LineNr"> 396 </span> 50/push-eax <span id="L397" class="LineNr"> 397 </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> @@ -483,7 +483,7 @@ if ('onhashchange' in window) { <span id="L422" class="LineNr"> 422 </span> <span class="subxS1Comment"># . prologue</span> <span id="L423" class="LineNr"> 423 </span> 55/push-ebp <span id="L424" class="LineNr"> 424 </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="L425" class="LineNr"> 425 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L425" class="LineNr"> 425 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L426" class="LineNr"> 426 </span> 68/push 0/imm32/end <span id="L427" class="LineNr"> 427 </span> 68/push 0/imm32/start <span id="L428" class="LineNr"> 428 </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> @@ -519,7 +519,7 @@ if ('onhashchange' in window) { <span id="L458" class="LineNr"> 458 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L459" class="LineNr"> 459 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L460" class="LineNr"> 460 </span> 05/add-to-eax 4/imm32 -<span id="L461" class="LineNr"> 461 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L461" class="LineNr"> 461 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L462" class="LineNr"> 462 </span> 51/push-ecx <span id="L463" class="LineNr"> 463 </span> 50/push-eax <span id="L464" class="LineNr"> 464 </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> @@ -545,7 +545,7 @@ if ('onhashchange' in window) { <span id="L484" class="LineNr"> 484 </span> 5d/pop-to-ebp <span id="L485" class="LineNr"> 485 </span> c3/return <span id="L486" class="LineNr"> 486 </span> -<span id="L487" class="LineNr"> 487 </span><span class="subxFunction">slice-starts-with?</span>: <span class="subxComment"># s : (addr slice), head : (addr array byte) -> eax : boolean</span> +<span id="L487" class="LineNr"> 487 </span><span class="subxFunction">slice-starts-with?</span>: <span class="subxComment"># s: (addr slice), head: (addr array byte) -> eax: boolean</span> <span id="L488" class="LineNr"> 488 </span> <span class="subxComment"># pseudocode</span> <span id="L489" class="LineNr"> 489 </span> <span class="subxComment"># lenh = head->length</span> <span id="L490" class="LineNr"> 490 </span> <span class="subxComment"># if (lenh > s->end - s->start) return false</span> @@ -578,25 +578,25 @@ if ('onhashchange' in window) { <span id="L517" class="LineNr"> 517 </span> 57/push-edi <span id="L518" class="LineNr"> 518 </span> <span class="subxComment"># esi = s</span> <span id="L519" class="LineNr"> 519 </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="L520" class="LineNr"> 520 </span> <span class="subxComment"># var lens/ecx : int = s->end - s->start</span> +<span id="L520" class="LineNr"> 520 </span> <span class="subxComment"># var lens/ecx: int = s->end - s->start</span> <span id="L521" class="LineNr"> 521 </span> 8b/copy 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(esi+4) to ecx</span> <span id="L522" class="LineNr"> 522 </span> 2b/subtract 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># subtract *esi from ecx</span> <span id="L523" class="LineNr"> 523 </span> <span class="subxComment"># edi = head</span> <span id="L524" class="LineNr"> 524 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 7/r32/edi 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to edi</span> -<span id="L525" class="LineNr"> 525 </span> <span class="subxComment"># var lenh/edx : int = head->length</span> +<span id="L525" class="LineNr"> 525 </span> <span class="subxComment"># var lenh/edx: int = head->length</span> <span id="L526" class="LineNr"> 526 </span> 8b/copy 0/mod/indirect 7/rm32/edi <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 *edi to edx</span> <span id="L527" class="LineNr"> 527 </span> <span class="subxComment"># if (lenh > lens) return false</span> <span id="L528" class="LineNr"> 528 </span> 39/compare 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># compare edx with ecx</span> <span id="L529" class="LineNr"> 529 </span> 7f/jump-if-> $slice-starts-with?:false/disp8 -<span id="L530" class="LineNr"> 530 </span> <span class="subxComment"># var currs/esi : (addr byte) = s->start</span> +<span id="L530" class="LineNr"> 530 </span> <span class="subxComment"># var currs/esi: (addr byte) = s->start</span> <span id="L531" class="LineNr"> 531 </span> 8b/subtract 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to esi</span> -<span id="L532" class="LineNr"> 532 </span> <span class="subxComment"># var currh/edi : (addr byte) = head->data</span> +<span id="L532" class="LineNr"> 532 </span> <span class="subxComment"># var currh/edi: (addr byte) = head->data</span> <span id="L533" class="LineNr"> 533 </span> 81 0/subop/add 3/mod/direct 7/rm32/edi <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 edi</span> -<span id="L534" class="LineNr"> 534 </span> <span class="subxComment"># var i/ecx : int = 0</span> +<span id="L534" class="LineNr"> 534 </span> <span class="subxComment"># var i/ecx: int = 0</span> <span id="L535" class="LineNr"> 535 </span> 31/xor 3/mod/direct 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear ecx</span> -<span id="L536" class="LineNr"> 536 </span> <span class="subxComment"># var c1/eax : byte = 0</span> +<span id="L536" class="LineNr"> 536 </span> <span class="subxComment"># var c1/eax: byte = 0</span> <span id="L537" class="LineNr"> 537 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> -<span id="L538" class="LineNr"> 538 </span> <span class="subxComment"># var c2/ebx : byte = 0</span> +<span id="L538" class="LineNr"> 538 </span> <span class="subxComment"># var c2/ebx: byte = 0</span> <span id="L539" class="LineNr"> 539 </span> 31/xor 3/mod/direct 3/rm32/ebx <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"># clear ebx</span> <span id="L540" class="LineNr"> 540 </span><span class="Constant">$slice-starts-with?:loop</span>: <span id="L541" class="LineNr"> 541 </span> <span class="subxComment"># if (i >= lenh) return true</span> @@ -643,7 +643,7 @@ if ('onhashchange' in window) { <span id="L582" class="LineNr"> 582 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L583" class="LineNr"> 583 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L584" class="LineNr"> 584 </span> 05/add-to-eax 4/imm32 -<span id="L585" class="LineNr"> 585 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L585" class="LineNr"> 585 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L586" class="LineNr"> 586 </span> 51/push-ecx <span id="L587" class="LineNr"> 587 </span> 50/push-eax <span id="L588" class="LineNr"> 588 </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> @@ -679,7 +679,7 @@ if ('onhashchange' in window) { <span id="L618" class="LineNr"> 618 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L619" class="LineNr"> 619 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L620" class="LineNr"> 620 </span> 05/add-to-eax 4/imm32 -<span id="L621" class="LineNr"> 621 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L621" class="LineNr"> 621 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L622" class="LineNr"> 622 </span> 51/push-ecx <span id="L623" class="LineNr"> 623 </span> 50/push-eax <span id="L624" class="LineNr"> 624 </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> @@ -715,7 +715,7 @@ if ('onhashchange' in window) { <span id="L654" class="LineNr"> 654 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L655" class="LineNr"> 655 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L656" class="LineNr"> 656 </span> 05/add-to-eax 4/imm32 -<span id="L657" class="LineNr"> 657 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L657" class="LineNr"> 657 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L658" class="LineNr"> 658 </span> 51/push-ecx <span id="L659" class="LineNr"> 659 </span> 50/push-eax <span id="L660" class="LineNr"> 660 </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> @@ -751,7 +751,7 @@ if ('onhashchange' in window) { <span id="L690" class="LineNr"> 690 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L691" class="LineNr"> 691 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L692" class="LineNr"> 692 </span> 05/add-to-eax 4/imm32 -<span id="L693" class="LineNr"> 693 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L693" class="LineNr"> 693 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L694" class="LineNr"> 694 </span> 51/push-ecx <span id="L695" class="LineNr"> 695 </span> 50/push-eax <span id="L696" class="LineNr"> 696 </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> @@ -787,7 +787,7 @@ if ('onhashchange' in window) { <span id="L726" class="LineNr"> 726 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L727" class="LineNr"> 727 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L728" class="LineNr"> 728 </span> 05/add-to-eax 4/imm32 -<span id="L729" class="LineNr"> 729 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L729" class="LineNr"> 729 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L730" class="LineNr"> 730 </span> 51/push-ecx <span id="L731" class="LineNr"> 731 </span> 50/push-eax <span id="L732" class="LineNr"> 732 </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> @@ -823,7 +823,7 @@ if ('onhashchange' in window) { <span id="L762" class="LineNr"> 762 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L763" class="LineNr"> 763 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L764" class="LineNr"> 764 </span> 05/add-to-eax 4/imm32 -<span id="L765" class="LineNr"> 765 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L765" class="LineNr"> 765 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L766" class="LineNr"> 766 </span> 51/push-ecx <span id="L767" class="LineNr"> 767 </span> 50/push-eax <span id="L768" class="LineNr"> 768 </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> @@ -851,7 +851,7 @@ if ('onhashchange' in window) { <span id="L790" class="LineNr"> 790 </span> <span id="L791" class="LineNr"> 791 </span><span class="subxComment"># write a slice to a stream</span> <span id="L792" class="LineNr"> 792 </span><span class="subxComment"># abort if the stream doesn't have enough space</span> -<span id="L793" class="LineNr"> 793 </span><span class="subxFunction">write-slice</span>: <span class="subxComment"># out : (addr stream byte), s : (addr slice)</span> +<span id="L793" class="LineNr"> 793 </span><span class="subxFunction">write-slice</span>: <span class="subxComment"># out: (addr stream byte), s: (addr slice)</span> <span id="L794" class="LineNr"> 794 </span> <span class="subxS1Comment"># . prologue</span> <span id="L795" class="LineNr"> 795 </span> 55/push-ebp <span id="L796" class="LineNr"> 796 </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> @@ -864,9 +864,9 @@ if ('onhashchange' in window) { <span id="L803" class="LineNr"> 803 </span> 57/push-edi <span id="L804" class="LineNr"> 804 </span> <span class="subxComment"># esi = s</span> <span id="L805" class="LineNr"> 805 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to esi</span> -<span id="L806" class="LineNr"> 806 </span> <span class="subxComment"># var curr/ecx : (addr byte) = s->start</span> +<span id="L806" class="LineNr"> 806 </span> <span class="subxComment"># var curr/ecx: (addr byte) = s->start</span> <span id="L807" class="LineNr"> 807 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to ecx</span> -<span id="L808" class="LineNr"> 808 </span> <span class="subxComment"># var max/esi : (addr byte) = s->end</span> +<span id="L808" class="LineNr"> 808 </span> <span class="subxComment"># var max/esi: (addr byte) = s->end</span> <span id="L809" class="LineNr"> 809 </span> 8b/copy 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(esi+4) to esi</span> <span id="L810" class="LineNr"> 810 </span> <span class="subxComment"># edi = out</span> <span id="L811" class="LineNr"> 811 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> 7/r32/edi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to edi</span> @@ -940,7 +940,7 @@ if ('onhashchange' in window) { <span id="L879" class="LineNr"> 879 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L880" class="LineNr"> 880 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L881" class="LineNr"> 881 </span> 05/add-to-eax 4/imm32 -<span id="L882" class="LineNr"> 882 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L882" class="LineNr"> 882 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L883" class="LineNr"> 883 </span> 51/push-ecx <span id="L884" class="LineNr"> 884 </span> 50/push-eax <span id="L885" class="LineNr"> 885 </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> @@ -967,7 +967,7 @@ if ('onhashchange' in window) { <span id="L906" class="LineNr"> 906 </span> c3/return <span id="L907" class="LineNr"> 907 </span> <span id="L908" class="LineNr"> 908 </span><span class="subxComment"># write a slice to a buffered-file</span> -<span id="L909" class="LineNr"> 909 </span><span class="subxFunction">write-slice-buffered</span>: <span class="subxComment"># out : (addr buffered-file), s : (addr slice)</span> +<span id="L909" class="LineNr"> 909 </span><span class="subxFunction">write-slice-buffered</span>: <span class="subxComment"># out: (addr buffered-file), s: (addr slice)</span> <span id="L910" class="LineNr"> 910 </span> <span class="subxS1Comment"># . prologue</span> <span id="L911" class="LineNr"> 911 </span> 55/push-ebp <span id="L912" class="LineNr"> 912 </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> @@ -980,9 +980,9 @@ if ('onhashchange' in window) { <span id="L919" class="LineNr"> 919 </span> 57/push-edi <span id="L920" class="LineNr"> 920 </span> <span class="subxComment"># esi = s</span> <span id="L921" class="LineNr"> 921 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to esi</span> -<span id="L922" class="LineNr"> 922 </span> <span class="subxComment"># var curr/ecx : (addr byte) = s->start</span> +<span id="L922" class="LineNr"> 922 </span> <span class="subxComment"># var curr/ecx: (addr byte) = s->start</span> <span id="L923" class="LineNr"> 923 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to ecx</span> -<span id="L924" class="LineNr"> 924 </span> <span class="subxComment"># var max/esi : (addr byte) = s->end</span> +<span id="L924" class="LineNr"> 924 </span> <span class="subxComment"># var max/esi: (addr byte) = s->end</span> <span id="L925" class="LineNr"> 925 </span> 8b/copy 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(esi+4) to esi</span> <span id="L926" class="LineNr"> 926 </span> <span class="subxComment"># edi = out</span> <span id="L927" class="LineNr"> 927 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> 7/r32/edi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to edi</span> @@ -1068,7 +1068,7 @@ if ('onhashchange' in window) { <span id="L1007" class="LineNr">1007 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L1008" class="LineNr">1008 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L1009" class="LineNr">1009 </span> 05/add-to-eax 4/imm32 -<span id="L1010" class="LineNr">1010 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L1010" class="LineNr">1010 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L1011" class="LineNr">1011 </span> 51/push-ecx <span id="L1012" class="LineNr">1012 </span> 50/push-eax <span id="L1013" class="LineNr">1013 </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> @@ -1102,7 +1102,7 @@ if ('onhashchange' in window) { <span id="L1041" class="LineNr">1041 </span> c3/return <span id="L1042" class="LineNr">1042 </span> <span id="L1043" class="LineNr">1043 </span><span class="subxComment"># copy a slice into a new (dynamically allocated) string</span> -<span id="L1044" class="LineNr">1044 </span><span class="subxFunction">slice-to-string</span>: <span class="subxComment"># ad : (addr allocation-descriptor), in : (addr slice) -> out/eax : (addr array byte)</span> +<span id="L1044" class="LineNr">1044 </span><span class="subxFunction">slice-to-string</span>: <span class="subxComment"># ad: (addr allocation-descriptor), in: (addr slice) -> out/eax: (addr array byte)</span> <span id="L1045" class="LineNr">1045 </span> <span class="subxS1Comment"># . prologue</span> <span id="L1046" class="LineNr">1046 </span> 55/push-ebp <span id="L1047" class="LineNr">1047 </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> @@ -1113,15 +1113,15 @@ if ('onhashchange' in window) { <span id="L1052" class="LineNr">1052 </span> 56/push-esi <span id="L1053" class="LineNr">1053 </span> <span class="subxComment"># esi = in</span> <span id="L1054" class="LineNr">1054 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to esi</span> -<span id="L1055" class="LineNr">1055 </span> <span class="subxComment"># var curr/edx : (addr byte) = in->start</span> +<span id="L1055" class="LineNr">1055 </span> <span class="subxComment"># var curr/edx: (addr byte) = in->start</span> <span id="L1056" class="LineNr">1056 </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="L1057" class="LineNr">1057 </span> <span class="subxComment"># var max/ebx : (addr byte) = in->end</span> +<span id="L1057" class="LineNr">1057 </span> <span class="subxComment"># var max/ebx: (addr byte) = in->end</span> <span id="L1058" class="LineNr">1058 </span> 8b/copy 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(esi+4) to ebx</span> -<span id="L1059" class="LineNr">1059 </span> <span class="subxComment"># var size/ecx : int = max - curr + 4 # total size of output string (including the initial length)</span> +<span id="L1059" class="LineNr">1059 </span> <span class="subxComment"># var size/ecx: int = max - curr + 4 # total size of output string (including the initial length)</span> <span id="L1060" class="LineNr">1060 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ebx to ecx</span> <span id="L1061" class="LineNr">1061 </span> 29/subtract 3/mod/direct 1/rm32/ecx <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"># subtract edx from ecx</span> <span id="L1062" class="LineNr">1062 </span> 81 0/subop/add 3/mod/direct 1/rm32/ecx <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 ecx</span> -<span id="L1063" class="LineNr">1063 </span> <span class="subxComment"># var out/eax : (handle array byte) = allocate(ad, size)</span> +<span id="L1063" class="LineNr">1063 </span> <span class="subxComment"># var out/eax: (handle array byte) = allocate(ad, size)</span> <span id="L1064" class="LineNr">1064 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1065" class="LineNr">1065 </span> 51/push-ecx <span id="L1066" class="LineNr">1066 </span> ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(ebp+8)</span> @@ -1184,7 +1184,7 @@ if ('onhashchange' in window) { <span id="L1123" class="LineNr">1123 </span> <span class="subxS1Comment"># . prologue</span> <span id="L1124" class="LineNr">1124 </span> 55/push-ebp <span id="L1125" class="LineNr">1125 </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="L1126" class="LineNr">1126 </span> <span class="subxComment"># var heap/edx : allocation-descriptor</span> +<span id="L1126" class="LineNr">1126 </span> <span class="subxComment"># var heap/edx: allocation-descriptor</span> <span id="L1127" class="LineNr">1127 </span> 68/push 0/imm32/limit <span id="L1128" class="LineNr">1128 </span> 68/push 0/imm32/curr <span id="L1129" class="LineNr">1129 </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,7 +1201,7 @@ if ('onhashchange' in window) { <span id="L1140" class="LineNr">1140 </span> 8b/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *eax to ecx</span> <span id="L1141" class="LineNr">1141 </span> 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax+ecx+4 to ecx</span> <span id="L1142" class="LineNr">1142 </span> 05/add-to-eax 4/imm32 -<span id="L1143" class="LineNr">1143 </span> <span class="subxComment"># var slice/ecx : slice = {eax, ecx}</span> +<span id="L1143" class="LineNr">1143 </span> <span class="subxComment"># var slice/ecx: slice = {eax, ecx}</span> <span id="L1144" class="LineNr">1144 </span> 51/push-ecx <span id="L1145" class="LineNr">1145 </span> 50/push-eax <span id="L1146" class="LineNr">1146 </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> |