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/056trace.subx.html | |
parent | 71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff) | |
download | mu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz |
5925
Diffstat (limited to 'html/056trace.subx.html')
-rw-r--r-- | html/056trace.subx.html | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/html/056trace.subx.html b/html/056trace.subx.html index 26cf8a0f..62071659 100644 --- a/html/056trace.subx.html +++ b/html/056trace.subx.html @@ -64,9 +64,9 @@ if ('onhashchange' in window) { <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># primitives for emitting traces to a 'trace' stream, and for tests to make assertions on its contents</span> <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span> <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># A trace stream looks like a regular stream:</span> -<span id="L4" class="LineNr"> 4 </span><span class="subxComment"># write : int # index at which writes go</span> -<span id="L5" class="LineNr"> 5 </span><span class="subxComment"># read : int # index that we've read until</span> -<span id="L6" class="LineNr"> 6 </span><span class="subxComment"># data : (array byte) # prefixed by length as usual</span> +<span id="L4" class="LineNr"> 4 </span><span class="subxComment"># write: int # index at which writes go</span> +<span id="L5" class="LineNr"> 5 </span><span class="subxComment"># read: int # index that we've read until</span> +<span id="L6" class="LineNr"> 6 </span><span class="subxComment"># data: (array byte) # prefixed by length as usual</span> <span id="L7" class="LineNr"> 7 </span><span class="subxComment"># Usually the trace stream will be in a separate segment set aside for the purpose.</span> <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#</span> <span id="L9" class="LineNr"> 9 </span><span class="subxComment"># primitives for operating on traces (arguments in quotes):</span> @@ -108,7 +108,7 @@ if ('onhashchange' in window) { <span id="L45" class="LineNr"> 45 </span> <span id="L46" class="LineNr"> 46 </span><span class="subxComment"># Allocate a new segment for the trace stream, initialize its length, and save its address to Trace-stream.</span> <span id="L47" class="LineNr"> 47 </span><span class="subxComment"># The Trace-stream segment will consist of variable-length lines separated by newlines (0x0a)</span> -<span id="L48" class="LineNr"> 48 </span><span class="subxFunction">initialize-trace-stream</span>: <span class="subxComment"># n : int</span> +<span id="L48" class="LineNr"> 48 </span><span class="subxFunction">initialize-trace-stream</span>: <span class="subxComment"># n: int</span> <span id="L49" class="LineNr"> 49 </span> <span class="subxS1Comment"># . prologue</span> <span id="L50" class="LineNr"> 50 </span> 55/push-ebp <span id="L51" class="LineNr"> 51 </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> @@ -146,7 +146,7 @@ if ('onhashchange' in window) { <span id="L83" class="LineNr"> 83 </span> <span id="L84" class="LineNr"> 84 </span><span class="subxComment"># Append a string to the given trace stream.</span> <span id="L85" class="LineNr"> 85 </span><span class="subxComment"># Silently give up if it's already full. Or truncate the string if there isn't enough room.</span> -<span id="L86" class="LineNr"> 86 </span><span class="subxFunction">trace</span>: <span class="subxComment"># line : (addr array byte)</span> +<span id="L86" class="LineNr"> 86 </span><span class="subxFunction">trace</span>: <span class="subxComment"># line: (addr array byte)</span> <span id="L87" class="LineNr"> 87 </span> <span class="subxS1Comment"># . prologue</span> <span id="L88" class="LineNr"> 88 </span> 55/push-ebp <span id="L89" class="LineNr"> 89 </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> @@ -157,13 +157,13 @@ if ('onhashchange' in window) { <span id="L94" class="LineNr"> 94 </span> 53/push-ebx <span id="L95" class="LineNr"> 95 </span> 56/push-esi <span id="L96" class="LineNr"> 96 </span> 57/push-edi -<span id="L97" class="LineNr"> 97 </span> <span class="subxComment"># var edi : (addr stream byte) = *Trace-stream</span> +<span id="L97" class="LineNr"> 97 </span> <span class="subxComment"># var edi: (addr stream byte) = *Trace-stream</span> <span id="L98" class="LineNr"> 98 </span> 8b/copy 0/mod/indirect 5/rm32/.disp32 <span class="Normal"> . </span> <span class="Normal"> . </span> 7/r32/edi <span class="SpecialChar"><a href='056trace.subx.html#L21'>Trace-stream</a></span>/disp32 <span class="subxComment"># copy *Trace-stream to edi</span> <span id="L99" class="LineNr"> 99 </span> <span class="subxComment"># esi = line</span> <span id="L100" class="LineNr">100 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <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="L101" class="LineNr">101 </span> <span class="subxComment"># var ecx : int = t->write</span> +<span id="L101" class="LineNr">101 </span> <span class="subxComment"># var ecx: int = t->write</span> <span id="L102" class="LineNr">102 </span> 8b/copy 0/mod/indirect 7/rm32/edi <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 *edi to ecx</span> -<span id="L103" class="LineNr">103 </span> <span class="subxComment"># var edx : int = t->length</span> +<span id="L103" class="LineNr">103 </span> <span class="subxComment"># var edx: int = t->length</span> <span id="L104" class="LineNr">104 </span> 8b/copy 1/mod/*+disp8 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(edi+8) to edx</span> <span id="L105" class="LineNr">105 </span> <span class="subxComment"># eax = _append-3(&t->data[t->write], &t->data[t->length], line)</span> <span id="L106" class="LineNr">106 </span> <span class="subxS2Comment"># . . push line</span> @@ -313,7 +313,7 @@ if ('onhashchange' in window) { <span id="L250" class="LineNr">250 </span> <span class="subxComment"># end</span> <span id="L251" class="LineNr">251 </span> c3/return <span id="L252" class="LineNr">252 </span> -<span id="L253" class="LineNr">253 </span><span class="subxFunction">check-trace-contains</span>: <span class="subxComment"># line : (addr string), msg : (addr string)</span> +<span id="L253" class="LineNr">253 </span><span class="subxFunction">check-trace-contains</span>: <span class="subxComment"># line: (addr string), msg: (addr string)</span> <span id="L254" class="LineNr">254 </span> <span class="subxS1Comment"># . prologue</span> <span id="L255" class="LineNr">255 </span> 55/push-ebp <span id="L256" class="LineNr">256 </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> @@ -338,7 +338,7 @@ if ('onhashchange' in window) { <span id="L275" class="LineNr">275 </span> 5d/pop-to-ebp <span id="L276" class="LineNr">276 </span> c3/return <span id="L277" class="LineNr">277 </span> -<span id="L278" class="LineNr">278 </span><span class="subxFunction">check-trace-scans-to</span>: <span class="subxComment"># line : (addr string), msg : (addr string)</span> +<span id="L278" class="LineNr">278 </span><span class="subxFunction">check-trace-scans-to</span>: <span class="subxComment"># line: (addr string), msg: (addr string)</span> <span id="L279" class="LineNr">279 </span> <span class="subxS1Comment"># . prologue</span> <span id="L280" class="LineNr">280 </span> 55/push-ebp <span id="L281" class="LineNr">281 </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> @@ -369,7 +369,7 @@ if ('onhashchange' in window) { <span id="L306" class="LineNr">306 </span> c3/return <span id="L307" class="LineNr">307 </span> <span id="L308" class="LineNr">308 </span><span class="subxComment"># Start scanning from Trace-stream->read for 'line'. If found, update Trace-stream->read and return true.</span> -<span id="L309" class="LineNr">309 </span><span class="subxFunction">trace-scan</span>: <span class="subxComment"># line : (addr array byte) -> result/eax : boolean</span> +<span id="L309" class="LineNr">309 </span><span class="subxFunction">trace-scan</span>: <span class="subxComment"># line: (addr array byte) -> result/eax: boolean</span> <span id="L310" class="LineNr">310 </span> <span class="subxComment"># pseudocode:</span> <span id="L311" class="LineNr">311 </span> <span class="subxComment"># push Trace-stream->read</span> <span id="L312" class="LineNr">312 </span> <span class="subxComment"># while true:</span> @@ -621,7 +621,7 @@ if ('onhashchange' in window) { <span id="L558" class="LineNr">558 </span> <span class="subxS1Comment"># . end</span> <span id="L559" class="LineNr">559 </span> c3/return <span id="L560" class="LineNr">560 </span> -<span id="L561" class="LineNr">561 </span><span class="subxFunction">next-line-matches?</span>: <span class="subxComment"># t : (addr stream byte), line : (addr array byte) -> result/eax : boolean</span> +<span id="L561" class="LineNr">561 </span><span class="subxFunction">next-line-matches?</span>: <span class="subxComment"># t: (addr stream byte), line: (addr array byte) -> result/eax: boolean</span> <span id="L562" class="LineNr">562 </span> <span class="subxComment"># pseudocode:</span> <span id="L563" class="LineNr">563 </span> <span class="subxComment"># while true:</span> <span id="L564" class="LineNr">564 </span> <span class="subxComment"># if (currl >= maxl) break</span> @@ -642,24 +642,24 @@ if ('onhashchange' in window) { <span id="L579" class="LineNr">579 </span> 57/push-edi <span id="L580" class="LineNr">580 </span> <span class="subxComment"># edx = line</span> <span id="L581" class="LineNr">581 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to edx</span> -<span id="L582" class="LineNr">582 </span> <span class="subxComment"># var currl/esi : (addr byte) = line->data</span> +<span id="L582" class="LineNr">582 </span> <span class="subxComment"># var currl/esi: (addr byte) = line->data</span> <span id="L583" class="LineNr">583 </span> <span class="subxS1Comment"># . esi = line/edx->data</span> <span id="L584" class="LineNr">584 </span> 8d/copy-address 1/mod/*+disp8 2/rm32/edx <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 edx+4 to esi</span> -<span id="L585" class="LineNr">585 </span> <span class="subxComment"># var maxl/ecx : (addr byte) = &line->data[line->size]</span> +<span id="L585" class="LineNr">585 </span> <span class="subxComment"># var maxl/ecx: (addr byte) = &line->data[line->size]</span> <span id="L586" class="LineNr">586 </span> <span class="subxS1Comment"># . eax = line/edx->size</span> <span id="L587" class="LineNr">587 </span> 8b/copy 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *edx to eax</span> <span id="L588" class="LineNr">588 </span> <span class="subxS1Comment"># . maxl = &line->data[line->size]</span> <span id="L589" class="LineNr">589 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 6/base/esi 0/index/eax <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy edx+eax to ecx</span> <span id="L590" class="LineNr">590 </span> <span class="subxComment"># edi = t</span> <span id="L591" class="LineNr">591 </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> -<span id="L592" class="LineNr">592 </span> <span class="subxComment"># var ebx : (addr byte) = t->data</span> +<span id="L592" class="LineNr">592 </span> <span class="subxComment"># var ebx: (addr byte) = t->data</span> <span id="L593" class="LineNr">593 </span> 8d/copy-address 1/mod/*+disp8 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy edi+12 to ebx</span> -<span id="L594" class="LineNr">594 </span> <span class="subxComment"># var maxt/edx : (addr byte) = &t->data[t->write]</span> +<span id="L594" class="LineNr">594 </span> <span class="subxComment"># var maxt/edx: (addr byte) = &t->data[t->write]</span> <span id="L595" class="LineNr">595 </span> <span class="subxS1Comment"># . eax = t->write</span> <span id="L596" class="LineNr">596 </span> 8b/copy 0/mod/indirect 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *edi to eax</span> <span id="L597" class="LineNr">597 </span> <span class="subxS1Comment"># . maxt = &t->data[t->write]</span> <span id="L598" class="LineNr">598 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 3/base/ebx 0/index/eax <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebx+eax to edx</span> -<span id="L599" class="LineNr">599 </span> <span class="subxComment"># var currt/edi : (addr byte) = &t->data[t->read]</span> +<span id="L599" class="LineNr">599 </span> <span class="subxComment"># var currt/edi: (addr byte) = &t->data[t->read]</span> <span id="L600" class="LineNr">600 </span> <span class="subxS1Comment"># . eax = t/edi->read</span> <span id="L601" class="LineNr">601 </span> 8b/copy 1/mod/*+disp8 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(edi+4) to eax</span> <span id="L602" class="LineNr">602 </span> <span class="subxS1Comment"># . currt = &t->data[t->read]</span> @@ -676,9 +676,9 @@ if ('onhashchange' in window) { <span id="L613" class="LineNr">613 </span> <span class="subxComment"># if (*currt != *currl) return false</span> <span id="L614" class="LineNr">614 </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="L615" class="LineNr">615 </span> 31/xor 3/mod/direct 3/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear ebx</span> -<span id="L616" class="LineNr">616 </span> <span class="subxS1Comment"># . eax : byte = *currt</span> +<span id="L616" class="LineNr">616 </span> <span class="subxS1Comment"># . eax: byte = *currt</span> <span id="L617" class="LineNr">617 </span> 8a/copy-byte 0/mod/indirect 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *edi to eax</span> -<span id="L618" class="LineNr">618 </span> <span class="subxS1Comment"># . ebx : byte = *currl</span> +<span id="L618" class="LineNr">618 </span> <span class="subxS1Comment"># . ebx: byte = *currl</span> <span id="L619" class="LineNr">619 </span> 8a/copy-byte 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to ebx</span> <span id="L620" class="LineNr">620 </span> <span class="subxS1Comment"># . eax >= ebx</span> <span id="L621" class="LineNr">621 </span> 39/compare 3/mod/direct 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"># compare eax and ebx</span> @@ -693,7 +693,7 @@ if ('onhashchange' in window) { <span id="L630" class="LineNr">630 </span><span class="Constant">$next-line-matches?:break</span>: <span id="L631" class="LineNr">631 </span> <span class="subxComment"># return *currt == '\n'</span> <span id="L632" class="LineNr">632 </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="L633" class="LineNr">633 </span> <span class="subxS1Comment"># . eax : byte = *currt</span> +<span id="L633" class="LineNr">633 </span> <span class="subxS1Comment"># . eax: byte = *currt</span> <span id="L634" class="LineNr">634 </span> 8a/copy-byte 0/mod/indirect 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *edi to eax</span> <span id="L635" class="LineNr">635 </span> 3d/compare-eax-and 0xa/imm32/newline <span id="L636" class="LineNr">636 </span> <span class="subxS1Comment"># . eax = false</span> @@ -797,7 +797,7 @@ if ('onhashchange' in window) { <span id="L734" class="LineNr">734 </span> c3/return <span id="L735" class="LineNr">735 </span> <span id="L736" class="LineNr">736 </span><span class="subxComment"># move t->read to _after_ next newline</span> -<span id="L737" class="LineNr">737 </span><span class="subxFunction">skip-next-line</span>: <span class="subxComment"># t : (addr stream byte)</span> +<span id="L737" class="LineNr">737 </span><span class="subxFunction">skip-next-line</span>: <span class="subxComment"># t: (addr stream byte)</span> <span id="L738" class="LineNr">738 </span> <span class="subxComment"># pseudocode:</span> <span id="L739" class="LineNr">739 </span> <span class="subxComment"># max = &t->data[t->write]</span> <span id="L740" class="LineNr">740 </span> <span class="subxComment"># i = t->read</span> @@ -823,13 +823,13 @@ if ('onhashchange' in window) { <span id="L760" class="LineNr">760 </span> 8d/copy-address 1/mod/*+disp8 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy ecx+12 to edx</span> <span id="L761" class="LineNr">761 </span> <span class="subxComment"># eax = t->write</span> <span id="L762" class="LineNr">762 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <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"># copy *ecx to eax</span> -<span id="L763" class="LineNr">763 </span> <span class="subxComment"># var max/ebx : (addr byte) = &t->data[t->write]</span> +<span id="L763" class="LineNr">763 </span> <span class="subxComment"># var max/ebx: (addr byte) = &t->data[t->write]</span> <span id="L764" class="LineNr">764 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 2/base/edx 0/index/eax <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy edx+eax to ebx</span> <span id="L765" class="LineNr">765 </span> <span class="subxComment"># eax = t->read</span> <span id="L766" class="LineNr">766 </span> 8b/copy 1/mod/*+disp8 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ecx+4) to edx</span> -<span id="L767" class="LineNr">767 </span> <span class="subxComment"># var curr/ecx : (addr byte) = &t->data[t->read]</span> +<span id="L767" class="LineNr">767 </span> <span class="subxComment"># var curr/ecx: (addr byte) = &t->data[t->read]</span> <span id="L768" class="LineNr">768 </span> 8d/copy-address 0/mod/indirect 4/rm32/sib 2/base/edx 0/index/eax <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy edx+eax to ecx</span> -<span id="L769" class="LineNr">769 </span> <span class="subxComment"># var i/edx : int = t->read</span> +<span id="L769" class="LineNr">769 </span> <span class="subxComment"># var i/edx: int = t->read</span> <span id="L770" class="LineNr">770 </span> 89/copy 3/mod/direct 2/rm32/edx <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"># copy eax to edx</span> <span id="L771" class="LineNr">771 </span><span class="Constant">$skip-next-line:loop</span>: <span id="L772" class="LineNr">772 </span> <span class="subxComment"># if (curr >= max) break</span> @@ -925,7 +925,7 @@ if ('onhashchange' in window) { <span id="L862" class="LineNr">862 </span><span class="subxH1Comment"># - helpers</span> <span id="L863" class="LineNr">863 </span> <span id="L864" class="LineNr">864 </span><span class="subxComment"># 3-argument variant of _append</span> -<span id="L865" class="LineNr">865 </span><span class="subxMinorFunction">_append-3</span>: <span class="subxComment"># out : (addr byte), outend : (addr byte), s : (addr array byte) -> num_bytes_appended/eax</span> +<span id="L865" class="LineNr">865 </span><span class="subxMinorFunction">_append-3</span>: <span class="subxComment"># out: (addr byte), outend: (addr byte), s: (addr array byte) -> num_bytes_appended/eax</span> <span id="L866" class="LineNr">866 </span> <span class="subxS1Comment"># . prologue</span> <span id="L867" class="LineNr">867 </span> 55/push-ebp <span id="L868" class="LineNr">868 </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> @@ -957,7 +957,7 @@ if ('onhashchange' in window) { <span id="L894" class="LineNr">894 </span> c3/return <span id="L895" class="LineNr">895 </span> <span id="L896" class="LineNr">896 </span><span class="subxComment"># 4-argument variant of _append</span> -<span id="L897" class="LineNr">897 </span><span class="subxMinorFunction">_append-4</span>: <span class="subxComment"># out : (addr byte), outend : (addr byte), in : (addr byte), inend : (addr byte) -> num_bytes_appended/eax : int</span> +<span id="L897" class="LineNr">897 </span><span class="subxMinorFunction">_append-4</span>: <span class="subxComment"># out: (addr byte), outend: (addr byte), in: (addr byte), inend: (addr byte) -> num_bytes_appended/eax: int</span> <span id="L898" class="LineNr">898 </span> <span class="subxS1Comment"># . prologue</span> <span id="L899" class="LineNr">899 </span> 55/push-ebp <span id="L900" class="LineNr">900 </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> |