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/apps/sigils.subx.html | |
parent | 71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff) | |
download | mu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz |
5925
Diffstat (limited to 'html/apps/sigils.subx.html')
-rw-r--r-- | html/apps/sigils.subx.html | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/html/apps/sigils.subx.html b/html/apps/sigils.subx.html index 5f87cf1e..5d023370 100644 --- a/html/apps/sigils.subx.html +++ b/html/apps/sigils.subx.html @@ -166,9 +166,9 @@ if ('onhashchange' in window) { <span id="L104" class="LineNr"> 104 </span> <span id="L105" class="LineNr"> 105 </span><span class="subxComment"># error messages considered:</span> <span id="L106" class="LineNr"> 106 </span><span class="subxComment"># *x + 34 -> error: base+disp addressing must be within '()'</span> -<span id="L107" class="LineNr"> 107 </span><span class="subxFunction">subx-sigils</span>: <span class="subxComment"># in : (addr buffered-file), out : (addr buffered-file)</span> +<span id="L107" class="LineNr"> 107 </span><span class="subxFunction">subx-sigils</span>: <span class="subxComment"># in: (addr buffered-file), out: (addr buffered-file)</span> <span id="L108" class="LineNr"> 108 </span> <span class="subxComment"># pseudocode:</span> -<span id="L109" class="LineNr"> 109 </span> <span class="subxComment"># var line : (stream byte 512)</span> +<span id="L109" class="LineNr"> 109 </span> <span class="subxComment"># var line: (stream byte 512)</span> <span id="L110" class="LineNr"> 110 </span> <span class="subxComment"># while true</span> <span id="L111" class="LineNr"> 111 </span> <span class="subxComment"># clear-stream(line)</span> <span id="L112" class="LineNr"> 112 </span> <span class="subxComment"># read-line-buffered(in, line)</span> @@ -203,13 +203,13 @@ if ('onhashchange' in window) { <span id="L141" class="LineNr"> 141 </span> 51/push-ecx <span id="L142" class="LineNr"> 142 </span> 52/push-edx <span id="L143" class="LineNr"> 143 </span> 53/push-ebx -<span id="L144" class="LineNr"> 144 </span> <span class="subxComment"># var line/ecx : (stream byte 512)</span> +<span id="L144" class="LineNr"> 144 </span> <span class="subxComment"># var line/ecx: (stream byte 512)</span> <span id="L145" class="LineNr"> 145 </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> 0x200/imm32 <span class="subxComment"># subtract from esp</span> <span id="L146" class="LineNr"> 146 </span> 68/push 0x200/imm32/length <span id="L147" class="LineNr"> 147 </span> 68/push 0/imm32/read <span id="L148" class="LineNr"> 148 </span> 68/push 0/imm32/write <span id="L149" class="LineNr"> 149 </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="L150" class="LineNr"> 150 </span> <span class="subxComment"># var word-slice/edx : slice</span> +<span id="L150" class="LineNr"> 150 </span> <span class="subxComment"># var word-slice/edx: slice</span> <span id="L151" class="LineNr"> 151 </span> 68/push 0/imm32/end <span id="L152" class="LineNr"> 152 </span> 68/push 0/imm32/start <span id="L153" class="LineNr"> 153 </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> @@ -1182,13 +1182,13 @@ if ('onhashchange' in window) { <span id="L1359" class="LineNr">1359 </span> 5d/pop-to-ebp <span id="L1360" class="LineNr">1360 </span> c3/return <span id="L1361" class="LineNr">1361 </span> -<span id="L1362" class="LineNr">1362 </span><span class="subxFunction">emit-direct-mode</span>: <span class="subxComment"># out : (addr buffered-file), word-slice : (addr slice)</span> +<span id="L1362" class="LineNr">1362 </span><span class="subxFunction">emit-direct-mode</span>: <span class="subxComment"># out: (addr buffered-file), word-slice: (addr slice)</span> <span id="L1363" class="LineNr">1363 </span> <span class="subxS1Comment"># . prologue</span> <span id="L1364" class="LineNr">1364 </span> 55/push-ebp <span id="L1365" class="LineNr">1365 </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="L1366" class="LineNr">1366 </span> <span class="subxS1Comment"># . save registers</span> <span id="L1367" class="LineNr">1367 </span> 50/push-eax -<span id="L1368" class="LineNr">1368 </span> <span class="subxComment"># var local-slice/eax : slice = {word-slice->start, word-slice->end}</span> +<span id="L1368" class="LineNr">1368 </span> <span class="subxComment"># var local-slice/eax: slice = {word-slice->start, word-slice->end}</span> <span id="L1369" class="LineNr">1369 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to eax</span> <span id="L1370" class="LineNr">1370 </span> ff 6/subop/push 1/mod/*+disp8 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(eax+4)</span> <span id="L1371" class="LineNr">1371 </span> ff 6/subop/push 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># push *eax</span> @@ -1372,7 +1372,7 @@ if ('onhashchange' in window) { <span id="L1599" class="LineNr">1599 </span><span class="subxComment"># error messages considered:</span> <span id="L1600" class="LineNr">1600 </span><span class="subxComment"># * ... -> error: no space after '*'</span> <span id="L1601" class="LineNr">1601 </span><span class="subxComment"># *(... -> error: *(...) expression must be all on a single line</span> -<span id="L1602" class="LineNr">1602 </span><span class="subxFunction">next-word-or-expression</span>: <span class="subxComment"># line : (addr stream byte), out : (addr slice)</span> +<span id="L1602" class="LineNr">1602 </span><span class="subxFunction">next-word-or-expression</span>: <span class="subxComment"># line: (addr stream byte), out: (addr slice)</span> <span id="L1603" class="LineNr">1603 </span> <span class="subxComment"># pseudocode:</span> <span id="L1604" class="LineNr">1604 </span> <span class="subxComment"># skip-chars-matching(line, ' ')</span> <span id="L1605" class="LineNr">1605 </span> <span class="subxComment"># if line->read >= line->write # end of line</span> @@ -1607,7 +1607,7 @@ if ('onhashchange' in window) { <span id="L1834" class="LineNr">1834 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1835" class="LineNr">1835 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1836" class="LineNr">1836 </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="L1837" class="LineNr">1837 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1837" class="LineNr">1837 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1838" class="LineNr">1838 </span> 68/push 0/imm32/end <span id="L1839" class="LineNr">1839 </span> 68/push 0/imm32/start <span id="L1840" class="LineNr">1840 </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> @@ -1680,7 +1680,7 @@ if ('onhashchange' in window) { <span id="L1907" class="LineNr">1907 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1908" class="LineNr">1908 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1909" class="LineNr">1909 </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="L1910" class="LineNr">1910 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1910" class="LineNr">1910 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1911" class="LineNr">1911 </span> 68/push 0/imm32/end <span id="L1912" class="LineNr">1912 </span> 68/push 0/imm32/start <span id="L1913" class="LineNr">1913 </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> @@ -1753,7 +1753,7 @@ if ('onhashchange' in window) { <span id="L1980" class="LineNr">1980 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1981" class="LineNr">1981 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1982" class="LineNr">1982 </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="L1983" class="LineNr">1983 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1983" class="LineNr">1983 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1984" class="LineNr">1984 </span> 68/push 0/imm32/end <span id="L1985" class="LineNr">1985 </span> 68/push 0/imm32/start <span id="L1986" class="LineNr">1986 </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> @@ -1795,7 +1795,7 @@ if ('onhashchange' in window) { <span id="L2022" class="LineNr">2022 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L2023" class="LineNr">2023 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2024" class="LineNr">2024 </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="L2025" class="LineNr">2025 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L2025" class="LineNr">2025 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L2026" class="LineNr">2026 </span> 68/push 0/imm32/end <span id="L2027" class="LineNr">2027 </span> 68/push 0/imm32/start <span id="L2028" class="LineNr">2028 </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> @@ -1858,7 +1858,7 @@ if ('onhashchange' in window) { <span id="L2085" class="LineNr">2085 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L2086" class="LineNr">2086 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2087" class="LineNr">2087 </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="L2088" class="LineNr">2088 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L2088" class="LineNr">2088 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L2089" class="LineNr">2089 </span> 68/push 0/imm32/end <span id="L2090" class="LineNr">2090 </span> 68/push 0/imm32/start <span id="L2091" class="LineNr">2091 </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> @@ -1921,7 +1921,7 @@ if ('onhashchange' in window) { <span id="L2148" class="LineNr">2148 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L2149" class="LineNr">2149 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2150" class="LineNr">2150 </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="L2151" class="LineNr">2151 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L2151" class="LineNr">2151 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L2152" class="LineNr">2152 </span> 68/push 0/imm32/end <span id="L2153" class="LineNr">2153 </span> 68/push 0/imm32/start <span id="L2154" class="LineNr">2154 </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> @@ -1980,7 +1980,7 @@ if ('onhashchange' in window) { <span id="L2207" class="LineNr">2207 </span><span class="subxComment"># *(reg1+reg2<<s+disp) -> 2/mod 4/rm32 reg1/base reg2/index s/scale disp/disp32</span> <span id="L2208" class="LineNr">2208 </span><span class="subxComment"># Intermediate structure: base, index, scale, disp</span> <span id="L2209" class="LineNr">2209 </span><span class="subxComment"># Default values: base: 0, index: 4 (none), scale: 0, disp: 0</span> -<span id="L2210" class="LineNr">2210 </span><span class="subxFunction">parse-effective-address</span>: <span class="subxComment"># word-slice : (addr slice) -> base/eax, index/ecx, scale/edx, disp/ebx</span> +<span id="L2210" class="LineNr">2210 </span><span class="subxFunction">parse-effective-address</span>: <span class="subxComment"># word-slice: (addr slice) -> base/eax, index/ecx, scale/edx, disp/ebx</span> <span id="L2211" class="LineNr">2211 </span> <span class="subxComment"># pseudocode:</span> <span id="L2212" class="LineNr">2212 </span> <span class="subxComment"># var local-slice = {word-slice->start, word-slice->end}</span> <span id="L2213" class="LineNr">2213 </span> <span class="subxComment"># ++local-slice->start to skip '*'</span> @@ -2023,7 +2023,7 @@ if ('onhashchange' in window) { <span id="L2250" class="LineNr">2250 </span> <span class="subxS1Comment"># . save registers</span> <span id="L2251" class="LineNr">2251 </span> 56/push-esi <span id="L2252" class="LineNr">2252 </span> 57/push-edi -<span id="L2253" class="LineNr">2253 </span> <span class="subxComment"># var local-slice/esi : slice = {word-slice->start, word-slice->end}</span> +<span id="L2253" class="LineNr">2253 </span> <span class="subxComment"># var local-slice/esi: slice = {word-slice->start, word-slice->end}</span> <span id="L2254" class="LineNr">2254 </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="L2255" class="LineNr">2255 </span> ff 6/subop/push 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(esi+4)</span> <span id="L2256" class="LineNr">2256 </span> ff 6/subop/push 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># push *esi</span> @@ -2443,7 +2443,7 @@ if ('onhashchange' in window) { <span id="L2670" class="LineNr">2670 </span> <span id="L2671" class="LineNr">2671 </span><span class="subxComment"># assumes 'in' starts with a register name, and returns pointer to its code</span> <span id="L2672" class="LineNr">2672 </span><span class="subxComment"># side-effect: modifies 'in' to scan past the initial register name</span> -<span id="L2673" class="LineNr">2673 </span><span class="subxFunction">next-register</span>: <span class="subxComment"># in : (addr slice) -> reg/eax : int</span> +<span id="L2673" class="LineNr">2673 </span><span class="subxFunction">next-register</span>: <span class="subxComment"># in: (addr slice) -> reg/eax: int</span> <span id="L2674" class="LineNr">2674 </span> <span class="subxS1Comment"># . prologue</span> <span id="L2675" class="LineNr">2675 </span> 55/push-ebp <span id="L2676" class="LineNr">2676 </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> @@ -2452,7 +2452,7 @@ if ('onhashchange' in window) { <span id="L2679" class="LineNr">2679 </span> 56/push-esi <span id="L2680" class="LineNr">2680 </span> <span class="subxComment"># esi = in</span> <span id="L2681" class="LineNr">2681 </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="L2682" class="LineNr">2682 </span> <span class="subxComment"># var reg-slice/ecx : slice = {in->start, in->start + 3}</span> +<span id="L2682" class="LineNr">2682 </span> <span class="subxComment"># var reg-slice/ecx: slice = {in->start, in->start + 3}</span> <span id="L2683" class="LineNr">2683 </span> 8b/copy 0/mod/indirect 6/rm32/esi <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 *esi to eax</span> <span id="L2684" class="LineNr">2684 </span> 05/add-to-eax 3/imm32 <span id="L2685" class="LineNr">2685 </span> 50/push-eax @@ -2922,7 +2922,7 @@ if ('onhashchange' in window) { <span id="L3149" class="LineNr">3149 </span><span class="subxComment"># if index is none, then mod = 2 and rm32 = base and disp32 = disp</span> <span id="L3150" class="LineNr">3150 </span><span class="subxComment"># emit-sib:</span> <span id="L3151" class="LineNr">3151 </span><span class="subxComment"># if index is not none, then mod = 2 and rm32 = 4 and base = base and index = index and disp32 = disp</span> -<span id="L3152" class="LineNr">3152 </span><span class="subxFunction">emit-indirect-mode</span>: <span class="subxComment"># out : (addr buffered-file), base : int, index : int, scale : int, disp : int</span> +<span id="L3152" class="LineNr">3152 </span><span class="subxFunction">emit-indirect-mode</span>: <span class="subxComment"># out: (addr buffered-file), base: int, index: int, scale: int, disp: int</span> <span id="L3153" class="LineNr">3153 </span> <span class="subxS1Comment"># . prologue</span> <span id="L3154" class="LineNr">3154 </span> 55/push-ebp <span id="L3155" class="LineNr">3155 </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> @@ -3456,14 +3456,14 @@ if ('onhashchange' in window) { <span id="L3858" class="LineNr">3858 </span> 5d/pop-to-ebp <span id="L3859" class="LineNr">3859 </span> c3/return <span id="L3860" class="LineNr">3860 </span> -<span id="L3861" class="LineNr">3861 </span><span class="subxFunction">disp32-mode?</span>: <span class="subxComment"># in : (addr slice) -> reg/eax : boolean</span> +<span id="L3861" class="LineNr">3861 </span><span class="subxFunction">disp32-mode?</span>: <span class="subxComment"># in: (addr slice) -> reg/eax: boolean</span> <span id="L3862" class="LineNr">3862 </span> <span class="subxS1Comment"># . prologue</span> <span id="L3863" class="LineNr">3863 </span> 55/push-ebp <span id="L3864" class="LineNr">3864 </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="L3865" class="LineNr">3865 </span> <span class="subxS1Comment"># . save registers</span> <span id="L3866" class="LineNr">3866 </span> 56/push-esi <span id="L3867" class="LineNr">3867 </span> 57/push-edi -<span id="L3868" class="LineNr">3868 </span> <span class="subxComment"># var local-slice/esi : slice = {in->start, in->end}</span> +<span id="L3868" class="LineNr">3868 </span> <span class="subxComment"># var local-slice/esi: slice = {in->start, in->end}</span> <span id="L3869" class="LineNr">3869 </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="L3870" class="LineNr">3870 </span> ff 6/subop/push 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(esi+4)</span> <span id="L3871" class="LineNr">3871 </span> ff 6/subop/push 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># push *esi</span> @@ -3515,13 +3515,13 @@ if ('onhashchange' in window) { <span id="L3917" class="LineNr">3917 </span> 5d/pop-to-ebp <span id="L3918" class="LineNr">3918 </span> c3/return <span id="L3919" class="LineNr">3919 </span> -<span id="L3920" class="LineNr">3920 </span><span class="subxFunction">emit-indirect-disp32</span>: <span class="subxComment"># out : (addr buffered-file), word-slice : (addr slice)</span> +<span id="L3920" class="LineNr">3920 </span><span class="subxFunction">emit-indirect-disp32</span>: <span class="subxComment"># out: (addr buffered-file), word-slice: (addr slice)</span> <span id="L3921" class="LineNr">3921 </span> <span class="subxS1Comment"># . prologue</span> <span id="L3922" class="LineNr">3922 </span> 55/push-ebp <span id="L3923" class="LineNr">3923 </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="L3924" class="LineNr">3924 </span> <span class="subxS1Comment"># . save registers</span> <span id="L3925" class="LineNr">3925 </span> 56/push-esi -<span id="L3926" class="LineNr">3926 </span> <span class="subxComment"># var local-slice/esi : slice = {in->start, in->end}</span> +<span id="L3926" class="LineNr">3926 </span> <span class="subxComment"># var local-slice/esi: slice = {in->start, in->end}</span> <span id="L3927" class="LineNr">3927 </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="L3928" class="LineNr">3928 </span> ff 6/subop/push 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(esi+4)</span> <span id="L3929" class="LineNr">3929 </span> ff 6/subop/push 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># push *esi</span> @@ -3565,7 +3565,7 @@ if ('onhashchange' in window) { <span id="L3967" class="LineNr">3967 </span><span class="subxComment"># assumes 'in' starts with optional '+' or '-', optional whitespace, and an unsigned integer</span> <span id="L3968" class="LineNr">3968 </span><span class="subxComment"># returns the value of the integer</span> <span id="L3969" class="LineNr">3969 </span><span class="subxComment"># side-effect: modifies 'in' to skip past the integer</span> -<span id="L3970" class="LineNr">3970 </span><span class="subxFunction">next-hex-int</span>: <span class="subxComment"># in : (addr slice) -> result/eax</span> +<span id="L3970" class="LineNr">3970 </span><span class="subxFunction">next-hex-int</span>: <span class="subxComment"># in: (addr slice) -> result/eax</span> <span id="L3971" class="LineNr">3971 </span> <span class="subxS1Comment"># . prologue</span> <span id="L3972" class="LineNr">3972 </span> 55/push-ebp <span id="L3973" class="LineNr">3973 </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> @@ -3980,7 +3980,7 @@ if ('onhashchange' in window) { <span id="L4382" class="LineNr">4382 </span><span class="subxComment"># assumes 'in' starts a positive unsigned integer</span> <span id="L4383" class="LineNr">4383 </span><span class="subxComment"># returns the value of the integer</span> <span id="L4384" class="LineNr">4384 </span><span class="subxComment"># side-effect: modifies 'in' to skip past the integer</span> -<span id="L4385" class="LineNr">4385 </span><span class="subxFunction">next-positive-hex-int</span>: <span class="subxComment"># in : (addr slice) -> result/eax</span> +<span id="L4385" class="LineNr">4385 </span><span class="subxFunction">next-positive-hex-int</span>: <span class="subxComment"># in: (addr slice) -> result/eax</span> <span id="L4386" class="LineNr">4386 </span> <span class="subxS1Comment"># . prologue</span> <span id="L4387" class="LineNr">4387 </span> 55/push-ebp <span id="L4388" class="LineNr">4388 </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> |