diff options
Diffstat (limited to 'html/apps/survey.subx.html')
-rw-r--r-- | html/apps/survey.subx.html | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/html/apps/survey.subx.html b/html/apps/survey.subx.html index dc442e1f..24b9d9d9 100644 --- a/html/apps/survey.subx.html +++ b/html/apps/survey.subx.html @@ -220,8 +220,8 @@ if ('onhashchange' in window) { <span id="L157" class="LineNr"> 157 </span> <span class="subxS1Comment"># . write</span> <span id="L158" class="LineNr"> 158 </span> 68/push 0/imm32/write <span id="L159" class="LineNr"> 159 </span> 89/copy 3/mod/direct 6/rm32/esi <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 esi</span> -<span id="L160" class="Folded"> 160 </span><span class="Folded">+-- 41 lines: #? # dump labels->write --------------------------------------------------------------------------------------------------------------------</span> -<span id="L201" class="Folded"> 201 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "slurp in\n") ---------------------------------------------------------------------------------------------------------</span> +<span id="L160" class="Folded"> 160 </span><span class="Folded">+-- 41 lines: #? # dump labels->write -----------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L201" class="Folded"> 201 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "slurp in\n") ------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L210" class="LineNr"> 210 </span> <span class="subxComment"># slurp(infile, in)</span> <span id="L211" class="LineNr"> 211 </span> <span class="subxS2Comment"># . . push args</span> <span id="L212" class="LineNr"> 212 </span> 56/push-esi @@ -230,9 +230,9 @@ if ('onhashchange' in window) { <span id="L215" class="LineNr"> 215 </span> e8/call <a href='../082slurp.subx.html#L8'>slurp</a>/disp32 <span id="L216" class="LineNr"> 216 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L217" class="LineNr"> 217 </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> 8/imm32 <span class="subxComment"># add to esp</span> -<span id="L218" class="Folded"> 218 </span><span class="Folded">+-- 40 lines: #? # dump labels->write --------------------------------------------------------------------------------------------------------------------</span> -<span id="L258" class="Folded"> 258 </span><span class="Folded">+-- 33 lines: #? # dump in -------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L291" class="Folded"> 291 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-offsets\n") --------------------------------------------------------------------------------------------------</span> +<span id="L218" class="Folded"> 218 </span><span class="Folded">+-- 40 lines: #? # dump labels->write -----------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L258" class="Folded"> 258 </span><span class="Folded">+-- 33 lines: #? # dump in ----------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L291" class="Folded"> 291 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-offsets\n") -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L300" class="LineNr"> 300 </span> <span class="subxComment"># compute-offsets(in, segments, labels)</span> <span id="L301" class="LineNr"> 301 </span> <span class="subxS2Comment"># . . push args</span> <span id="L302" class="LineNr"> 302 </span> 52/push-edx @@ -242,7 +242,7 @@ if ('onhashchange' in window) { <span id="L306" class="LineNr"> 306 </span> e8/call <a href='survey.subx.html#L621'>compute-offsets</a>/disp32 <span id="L307" class="LineNr"> 307 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L308" class="LineNr"> 308 </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> 0xc/imm32 <span class="subxComment"># add to esp</span> -<span id="L309" class="Folded"> 309 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-addresses\n") ------------------------------------------------------------------------------------------------</span> +<span id="L309" class="Folded"> 309 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-addresses\n") ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L318" class="LineNr"> 318 </span> <span class="subxComment"># compute-addresses(segments, labels)</span> <span id="L319" class="LineNr"> 319 </span> <span class="subxS2Comment"># . . push args</span> <span id="L320" class="LineNr"> 320 </span> 52/push-edx @@ -258,9 +258,9 @@ if ('onhashchange' in window) { <span id="L330" class="LineNr"> 330 </span> e8/call <a href='../055stream.subx.html#L54'>rewind-stream</a>/disp32 <span id="L331" class="LineNr"> 331 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L332" class="LineNr"> 332 </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="L333" class="Folded"> 333 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-output\n") ------------------------------------------------------------------------------------------------------</span> -<span id="L342" class="Folded"> 342 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> -<span id="L368" class="Folded"> 368 </span><span class="Folded">+-- 40 lines: #? # dump labels->write --------------------------------------------------------------------------------------------------------------------</span> +<span id="L333" class="Folded"> 333 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-output\n") ---------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L342" class="Folded"> 342 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L368" class="Folded"> 368 </span><span class="Folded">+-- 40 lines: #? # dump labels->write -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L408" class="LineNr"> 408 </span> <span class="subxComment"># emit-output(in, out, segments, labels)</span> <span id="L409" class="LineNr"> 409 </span> <span class="subxS2Comment"># . . push args</span> <span id="L410" class="LineNr"> 410 </span> 52/push-edx @@ -395,7 +395,7 @@ if ('onhashchange' in window) { <span id="L539" class="LineNr"> 539 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L540" class="LineNr"> 540 </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> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L541" class="LineNr"> 541 </span> <span class="subxComment"># check trace</span> -<span id="L542" class="Folded"> 542 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L542" class="Folded"> 542 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L568" class="LineNr"> 568 </span> <span class="subxS1Comment"># . check-trace-contains("label 'x' is at address 0x00001079.", msg)</span> <span id="L569" class="LineNr"> 569 </span> <span class="subxS2Comment"># . . push args</span> <span id="L570" class="LineNr"> 570 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L437'>test-subx-survey-computes-addresses</a>/0"</span>/imm32 @@ -541,7 +541,7 @@ if ('onhashchange' in window) { <span id="L710" class="LineNr"> 710 </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="L711" class="LineNr"> 711 </span> 3d/compare-eax-and 0/imm32 <span id="L712" class="LineNr"> 712 </span> 0f 84/jump-if-= $compute-offsets:break-line-loop/disp32 -<span id="L713" class="Folded"> 713 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> +<span id="L713" class="Folded"> 713 </span><span class="Folded">+-- 33 lines: #? # dump line --------------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L746" class="LineNr"> 746 </span><span class="Constant">$compute-offsets:word-loop</span>: <span id="L747" class="LineNr"> 747 </span> <span class="subxComment"># edx = word-slice</span> <span id="L748" class="LineNr"> 748 </span> ba/copy-to-edx <a href='survey.subx.html#L621'>compute-offsets</a>:word-slice/imm32 @@ -551,7 +551,7 @@ if ('onhashchange' in window) { <span id="L752" class="LineNr"> 752 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L753" class="LineNr"> 753 </span> <span class="subxS1Comment"># . discard args</span> <span id="L754" class="LineNr"> 754 </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> 8/imm32 <span class="subxComment"># add to esp</span> -<span id="L755" class="Folded"> 755 </span><span class="Folded">+-- 74 lines: #? # dump word-slice and maybe curr-segment-name -------------------------------------------------------------------------------------------</span> +<span id="L755" class="Folded"> 755 </span><span class="Folded">+-- 74 lines: #? # dump word-slice and maybe curr-segment-name ----------------------------------------------------------------------------------------------------------------------</span> <span id="L829" class="LineNr"> 829 </span><span class="Constant">$compute-offsets:case-empty</span>: <span id="L830" class="LineNr"> 830 </span> <span class="subxComment"># if slice-empty?(word/edx) break</span> <span id="L831" class="LineNr"> 831 </span> <span class="subxS1Comment"># . eax = slice-empty?(word/edx)</span> @@ -626,7 +626,7 @@ if ('onhashchange' in window) { <span id="L900" class="LineNr"> 900 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L901" class="LineNr"> 901 </span> <span class="subxS1Comment"># . discard args</span> <span id="L902" class="LineNr"> 902 </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> 8/imm32 <span class="subxComment"># add to esp</span> -<span id="L903" class="Folded"> 903 </span><span class="Folded">+-- 45 lines: #? # dump curr-segment-name if not null (clobbering eax) -----------------------------------------------------------------------------------</span> +<span id="L903" class="Folded"> 903 </span><span class="Folded">+-- 45 lines: #? # dump curr-segment-name if not null (clobbering eax) --------------------------------------------------------------------------------------------------------------</span> <span id="L948" class="LineNr"> 948 </span><span class="Constant">$compute-offsets:update-curr-segment-name</span>: <span id="L949" class="LineNr"> 949 </span> <span class="subxComment"># curr-segment-name = slice-to-string(segment-tmp)</span> <span id="L950" class="LineNr"> 950 </span> <span class="subxS1Comment"># . eax = slice-to-string(Heap, segment-tmp)</span> @@ -766,7 +766,7 @@ if ('onhashchange' in window) { <span id="L1084" class="LineNr">1084 </span> 01/add 0/mod/indirect 5/rm32/.disp32 <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <a href='survey.subx.html#L621'>compute-offsets</a>:segment-offset/disp32 <span class="subxComment"># add eax to *segment-offset</span> <span id="L1085" class="LineNr">1085 </span> <span class="subxComment"># file-offset += width</span> <span id="L1086" class="LineNr">1086 </span> 01/add 0/mod/indirect 5/rm32/.disp32 <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <a href='survey.subx.html#L621'>compute-offsets</a>:file-offset/disp32 <span class="subxComment"># add eax to *file-offset</span> -<span id="L1087" class="Folded">1087 </span><span class="Folded">+-- 41 lines: #? # dump segment-offset -------------------------------------------------------------------------------------------------------------------</span> +<span id="L1087" class="Folded">1087 </span><span class="Folded">+-- 41 lines: #? # dump segment-offset ----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1128" class="LineNr">1128 </span> e9/jump $compute-offsets:word-loop/disp32 <span id="L1129" class="LineNr">1129 </span><span class="Constant">$compute-offsets:break-line-loop</span>: <span id="L1130" class="LineNr">1130 </span> <span class="subxComment"># seg/eax = get-or-insert(segments, curr-segment-name, row-size=16)</span> @@ -931,7 +931,7 @@ if ('onhashchange' in window) { <span id="L1289" class="LineNr">1289 </span> e8/call <a href='survey.subx.html#L621'>compute-offsets</a>/disp32 <span id="L1290" class="LineNr">1290 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1291" class="LineNr">1291 </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> 0xc/imm32 <span class="subxComment"># add to esp</span> -<span id="L1292" class="Folded">1292 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L1292" class="Folded">1292 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1318" class="LineNr">1318 </span> <span class="subxComment"># check trace</span> <span id="L1319" class="LineNr">1319 </span> <span class="subxS1Comment"># . check-trace-contains("segment 'code' is at file offset 0x00000000.", msg)</span> <span id="L1320" class="LineNr">1320 </span> <span class="subxS2Comment"># . . push args</span> @@ -1076,7 +1076,7 @@ if ('onhashchange' in window) { <span id="L1459" class="LineNr">1459 </span> 05/add-to-eax 0x10/imm32 <span id="L1460" class="LineNr">1460 </span> eb/jump $compute-addresses:segment-loop/disp8 <span id="L1461" class="LineNr">1461 </span><span class="Constant">$compute-addresses:segment-break</span>: -<span id="L1462" class="Folded">1462 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L1462" class="Folded">1462 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1488" class="LineNr">1488 </span> <span class="subxComment"># esi = labels</span> <span id="L1489" class="LineNr">1489 </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="L1490" class="LineNr">1490 </span> <span class="subxComment"># lrow/eax = labels->data</span> @@ -1088,10 +1088,10 @@ if ('onhashchange' in window) { <span id="L1496" class="LineNr">1496 </span> <span class="subxComment"># if (lrow >= max) break</span> <span id="L1497" class="LineNr">1497 </span> 39/compare 3/mod/direct 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"># compare eax with ecx</span> <span id="L1498" class="LineNr">1498 </span> 0f 83/jump-if-addr>= $compute-addresses:end/disp32 -<span id="L1499" class="Folded">1499 </span><span class="Folded">+-- 26 lines: #? # dump lrow->key ------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1499" class="Folded">1499 </span><span class="Folded">+-- 26 lines: #? # dump lrow->key ---------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1525" class="LineNr">1525 </span> <span class="subxComment"># var seg-name/edx: (addr array byte) = lrow->segment-name</span> <span id="L1526" class="LineNr">1526 </span> 8b/copy 1/mod/*+disp8 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *eax to edx</span> -<span id="L1527" class="Folded">1527 </span><span class="Folded">+-- 26 lines: #? # dump seg-name -------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1527" class="Folded">1527 </span><span class="Folded">+-- 26 lines: #? # dump seg-name ----------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1553" class="LineNr">1553 </span> <span class="subxComment"># var label-seg/edx: (addr segment-info) = get(segments, seg-name, row-size=16, "segment table")</span> <span id="L1554" class="LineNr">1554 </span> <span class="subxS1Comment"># . save eax</span> <span id="L1555" class="LineNr">1555 </span> 50/push-eax @@ -1235,7 +1235,7 @@ if ('onhashchange' in window) { <span id="L1693" class="LineNr">1693 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1694" class="LineNr">1694 </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> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L1695" class="LineNr">1695 </span> <span class="subxComment"># checks</span> -<span id="L1696" class="Folded">1696 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L1696" class="Folded">1696 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1722" class="LineNr">1722 </span> <span class="subxS1Comment"># . check-trace-contains("segment 'a' starts at address 0x00001094.", msg)</span> <span id="L1723" class="LineNr">1723 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1724" class="LineNr">1724 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L1603'>test-compute-addresses</a>/0"</span>/imm32 @@ -1396,7 +1396,7 @@ if ('onhashchange' in window) { <span id="L1879" class="LineNr">1879 </span> <span class="subxS1Comment"># . prologue</span> <span id="L1880" class="LineNr">1880 </span> 55/push-ebp <span id="L1881" class="LineNr">1881 </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="L1882" class="Folded">1882 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-headers\n") -----------------------------------------------------------------------------------------------------</span> +<span id="L1882" class="Folded">1882 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-headers\n") --------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1891" class="LineNr">1891 </span> <span class="subxComment"># emit-headers(out, segments, labels)</span> <span id="L1892" class="LineNr">1892 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1893" class="LineNr">1893 </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> 0x14/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(ebp+20)</span> @@ -1406,7 +1406,7 @@ if ('onhashchange' in window) { <span id="L1897" class="LineNr">1897 </span> e8/call <a href='survey.subx.html#L3176'>emit-headers</a>/disp32 <span id="L1898" class="LineNr">1898 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1899" class="LineNr">1899 </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> 0xc/imm32 <span class="subxComment"># add to esp</span> -<span id="L1900" class="Folded">1900 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segments\n") ----------------------------------------------------------------------------------------------------</span> +<span id="L1900" class="Folded">1900 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segments\n") -------------------------------------------------------------------------------------------------------------------------------</span> <span id="L1909" class="LineNr">1909 </span> <span class="subxComment"># emit-segments(in, out, segments, labels)</span> <span id="L1910" class="LineNr">1910 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1911" class="LineNr">1911 </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> 0x14/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(ebp+20)</span> @@ -1520,7 +1520,7 @@ if ('onhashchange' in window) { <span id="L2019" class="LineNr">2019 </span> e8/call <a href='../071read-line.subx.html#L219'>read-line</a>/disp32 <span id="L2020" class="LineNr">2020 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2021" class="LineNr">2021 </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> 8/imm32 <span class="subxComment"># add to esp</span> -<span id="L2022" class="Folded">2022 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2022" class="Folded">2022 </span><span class="Folded">+-- 33 lines: #? # dump line --------------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2055" class="LineNr">2055 </span><span class="Constant">$emit-segments:check-for-end-of-input</span>: <span id="L2056" class="LineNr">2056 </span> <span class="subxComment"># if (line->write == 0) break</span> <span id="L2057" class="LineNr">2057 </span> 81 7/subop/compare 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/imm32 <span class="subxComment"># compare *ecx</span> @@ -1544,7 +1544,7 @@ if ('onhashchange' in window) { <span id="L2075" class="LineNr">2075 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L2076" class="LineNr">2076 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2077" class="LineNr">2077 </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> 8/imm32 <span class="subxComment"># add to esp</span> -<span id="L2078" class="Folded">2078 </span><span class="Folded">+-- 33 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> +<span id="L2078" class="Folded">2078 </span><span class="Folded">+-- 33 lines: #? # dump word-slice --------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2111" class="LineNr">2111 </span><span class="Constant">$emit-segments:check-for-end-of-line</span>: <span id="L2112" class="LineNr">2112 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L2113" class="LineNr">2113 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -1555,7 +1555,7 @@ if ('onhashchange' in window) { <span id="L2118" class="LineNr">2118 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2119" class="LineNr">2119 </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="L2120" class="LineNr">2120 </span> <span class="subxS1Comment"># . if (eax != 0) break</span> -<span id="L2121" class="LineNr">2121 </span> 3d/compare-eax-and 0/imm32 +<span id="L2121" class="LineNr">2121 </span> 3d/compare-eax-and 0/imm32/false <span id="L2122" class="LineNr">2122 </span> 0f 85/jump-if-!= $emit-segments:next-line/disp32 <span id="L2123" class="LineNr">2123 </span><span class="Constant">$emit-segments:check-for-comment</span>: <span id="L2124" class="LineNr">2124 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) break</span> @@ -1630,7 +1630,7 @@ if ('onhashchange' in window) { <span id="L2193" class="LineNr">2193 </span> e8/call <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32 <span id="L2194" class="LineNr">2194 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2195" class="LineNr">2195 </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> 0x10/imm32 <span class="subxComment"># add to esp</span> -<span id="L2196" class="Folded">2196 </span><span class="Folded">+-- 33 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> +<span id="L2196" class="Folded">2196 </span><span class="Folded">+-- 33 lines: #? # dump word-slice --------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2229" class="LineNr">2229 </span> <span class="subxComment"># info/esi = get-slice(labels, datum, row-size=16, "label table")</span> <span id="L2230" class="LineNr">2230 </span> <span class="subxS1Comment"># . eax = get-slice(labels, datum, row-size=16, "label table")</span> <span id="L2231" class="LineNr">2231 </span> <span class="subxS2Comment"># . . push args</span> @@ -1645,7 +1645,7 @@ if ('onhashchange' in window) { <span id="L2240" class="LineNr">2240 </span> <span class="subxS1Comment"># . esi = eax</span> <span id="L2241" class="LineNr">2241 </span> 89/copy 3/mod/direct 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 eax to esi</span> <span id="L2242" class="LineNr">2242 </span><span class="Constant">$emit-segments:check-global-variable</span>: -<span id="L2243" class="Folded">2243 </span><span class="Folded">+-- 26 lines: #? # dump info->segment-name ---------------------------------------------------------------------------------------------------------------</span> +<span id="L2243" class="Folded">2243 </span><span class="Folded">+-- 26 lines: #? # dump info->segment-name ------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2269" class="LineNr">2269 </span> <span class="subxComment"># if string-equal?(info->segment-name, "code") goto code label checks</span> <span id="L2270" class="LineNr">2270 </span> <span class="subxS1Comment"># . eax = string-equal?(info->segment-name, "code")</span> <span id="L2271" class="LineNr">2271 </span> <span class="subxS2Comment"># . . push args</span> @@ -1720,9 +1720,9 @@ if ('onhashchange' in window) { <span id="L2340" class="LineNr">2340 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2341" class="LineNr">2341 </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> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L2342" class="LineNr">2342 </span> <span class="subxS1Comment"># . if (eax == false) goto next check</span> -<span id="L2343" class="LineNr">2343 </span> 3d/compare-eax-and 0/imm32 +<span id="L2343" class="LineNr">2343 </span> 3d/compare-eax-and 0/imm32/false <span id="L2344" class="LineNr">2344 </span> 74/jump-if-= $emit-segments:check-code-label-for-disp8/disp8 -<span id="L2345" class="Folded">2345 </span><span class="Folded">+-- 33 lines: #? # dump info->address --------------------------------------------------------------------------------------------------------------------</span> +<span id="L2345" class="Folded">2345 </span><span class="Folded">+-- 33 lines: #? # dump info->address -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2378" class="LineNr">2378 </span><span class="Constant">$emit-segments:emit-code-label-imm32</span>: <span id="L2379" class="LineNr">2379 </span> <span class="subxComment"># emit-hex(out, info->address, 4)</span> <span id="L2380" class="LineNr">2380 </span> <span class="subxS2Comment"># . . push args</span> @@ -2043,7 +2043,7 @@ if ('onhashchange' in window) { <span id="L2695" class="LineNr">2695 </span> e8/call <a href='../064write-byte.subx.html#L81'>flush</a>/disp32 <span id="L2696" class="LineNr">2696 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2697" class="LineNr">2697 </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="L2698" class="Folded">2698 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2698" class="Folded">2698 </span><span class="Folded">+-- 33 lines: #? # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2731" class="LineNr">2731 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ab cd ef gh ", msg)</span> <span id="L2732" class="LineNr">2732 </span> <span class="subxS2Comment"># . . push args</span> <span id="L2733" class="LineNr">2733 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L2531'>test-emit-segments-global-variable</a>/0"</span>/imm32 @@ -2222,7 +2222,7 @@ if ('onhashchange' in window) { <span id="L2906" class="LineNr">2906 </span> e8/call <a href='../064write-byte.subx.html#L81'>flush</a>/disp32 <span id="L2907" class="LineNr">2907 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2908" class="LineNr">2908 </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="L2909" class="Folded">2909 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2909" class="Folded">2909 </span><span class="Folded">+-- 33 lines: #? # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L2942" class="LineNr">2942 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)</span> <span id="L2943" class="LineNr">2943 </span> <span class="subxS2Comment"># . . push args</span> <span id="L2944" class="LineNr">2944 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L2772'>test-emit-segments-code-label</a>/0"</span>/imm32 @@ -2392,7 +2392,7 @@ if ('onhashchange' in window) { <span id="L3108" class="LineNr">3108 </span> e8/call <a href='../064write-byte.subx.html#L81'>flush</a>/disp32 <span id="L3109" class="LineNr">3109 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3110" class="LineNr">3110 </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="L3111" class="Folded">3111 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3111" class="Folded">3111 </span><span class="Folded">+-- 33 lines: #? # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L3144" class="LineNr">3144 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)</span> <span id="L3145" class="LineNr">3145 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3146" class="LineNr">3146 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L2974'>test-emit-segments-code-label-absolute</a>/0"</span>/imm32 @@ -2441,7 +2441,7 @@ if ('onhashchange' in window) { <span id="L3189" class="LineNr">3189 </span> <span class="subxS1Comment"># . save registers</span> <span id="L3190" class="LineNr">3190 </span> 50/push-eax <span id="L3191" class="LineNr">3191 </span> 51/push-ecx -<span id="L3192" class="Folded">3192 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-elf-header\n") --------------------------------------------------------------------------------------------------</span> +<span id="L3192" class="Folded">3192 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-elf-header\n") -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L3201" class="LineNr">3201 </span> <span class="subxComment"># emit-elf-header(out, segments, labels)</span> <span id="L3202" class="LineNr">3202 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3203" class="LineNr">3203 </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> 0x10/disp8 <span class="Normal"> . </span> <span class="subxComment"># push *(ebp+16)</span> @@ -2463,8 +2463,8 @@ if ('onhashchange' in window) { <span id="L3219" class="LineNr">3219 </span> <span class="subxComment"># if (curr-segment >= max) break</span> <span id="L3220" class="LineNr">3220 </span> 39/compare 3/mod/direct 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"># compare eax with ecx</span> <span id="L3221" class="LineNr">3221 </span> 0f 83/jump-if-addr>= $emit-headers:end/disp32 -<span id="L3222" class="Folded">3222 </span><span class="Folded">+-- 63 lines: #? # dump curr-segment->name ---------------------------------------------------------------------------------------------------------------</span> -<span id="L3285" class="Folded">3285 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segment-header\n") ----------------------------------------------------------------------------------------------</span> +<span id="L3222" class="Folded">3222 </span><span class="Folded">+-- 63 lines: #? # dump curr-segment->name ------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3285" class="Folded">3285 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segment-header\n") -------------------------------------------------------------------------------------------------------------------------</span> <span id="L3294" class="LineNr">3294 </span> <span class="subxComment"># emit-elf-program-header-entry(out, curr-segment)</span> <span id="L3295" class="LineNr">3295 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3296" class="LineNr">3296 </span> 50/push-eax @@ -2796,7 +2796,7 @@ if ('onhashchange' in window) { <span id="L3622" class="LineNr">3622 </span> e8/call <a href='survey.subx.html#L3557'>trace-sssns</a>/disp32 <span id="L3623" class="LineNr">3623 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3624" class="LineNr">3624 </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> 0x14/imm32 <span class="subxComment"># add to esp</span> -<span id="L3625" class="Folded">3625 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L3625" class="Folded">3625 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L3651" class="LineNr">3651 </span> <span class="subxComment"># check-trace-contains("Abc 0x00000003 e")</span> <span id="L3652" class="LineNr">3652 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3653" class="LineNr">3653 </span> 68/push <span class="Constant">"F - test-trace-sssns"</span>/imm32 @@ -2878,7 +2878,7 @@ if ('onhashchange' in window) { <span id="L3729" class="LineNr">3729 </span> e8/call <a href='survey.subx.html#L3664'>trace-snsns</a>/disp32 <span id="L3730" class="LineNr">3730 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3731" class="LineNr">3731 </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> 0x14/imm32 <span class="subxComment"># add to esp</span> -<span id="L3732" class="Folded">3732 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L3732" class="Folded">3732 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L3758" class="LineNr">3758 </span> <span class="subxComment"># check-trace-contains("Abc 0x00000003 e")</span> <span id="L3759" class="LineNr">3759 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3760" class="LineNr">3760 </span> 68/push <span class="Constant">"F - test-trace-snsns"</span>/imm32 @@ -2978,7 +2978,7 @@ if ('onhashchange' in window) { <span id="L3854" class="LineNr">3854 </span> e8/call <a href='survey.subx.html#L3771'>trace-slsls</a>/disp32 <span id="L3855" class="LineNr">3855 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3856" class="LineNr">3856 </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> 0x14/imm32 <span class="subxComment"># add to esp</span> -<span id="L3857" class="Folded">3857 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L3857" class="Folded">3857 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L3883" class="LineNr">3883 </span> <span class="subxComment"># check-trace-contains("Abcde")</span> <span id="L3884" class="LineNr">3884 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3885" class="LineNr">3885 </span> 68/push <span class="Constant">"F - test-trace-slsls"</span>/imm32 @@ -3069,7 +3069,7 @@ if ('onhashchange' in window) { <span id="L3970" class="LineNr">3970 </span> e8/call <a href='survey.subx.html#L3896'>trace-slsns</a>/disp32 <span id="L3971" class="LineNr">3971 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3972" class="LineNr">3972 </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> 0x14/imm32 <span class="subxComment"># add to esp</span> -<span id="L3973" class="Folded">3973 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L3973" class="Folded">3973 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L3999" class="LineNr">3999 </span> <span class="subxComment"># check-trace-contains("Abc 0x00000003 e")</span> <span id="L4000" class="LineNr">4000 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4001" class="LineNr">4001 </span> 68/push <span class="Constant">"F - test-trace-slsls"</span>/imm32 @@ -3160,7 +3160,7 @@ if ('onhashchange' in window) { <span id="L4086" class="LineNr">4086 </span> e8/call <a href='survey.subx.html#L4012'>trace-slsss</a>/disp32 <span id="L4087" class="LineNr">4087 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4088" class="LineNr">4088 </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> 0x14/imm32 <span class="subxComment"># add to esp</span> -<span id="L4089" class="Folded">4089 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L4089" class="Folded">4089 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream -----------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L4115" class="LineNr">4115 </span> <span class="subxComment"># check-trace-contains("Abcde")</span> <span id="L4116" class="LineNr">4116 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4117" class="LineNr">4117 </span> 68/push <span class="Constant">"F - test-trace-slsss"</span>/imm32 @@ -3203,7 +3203,7 @@ if ('onhashchange' in window) { <span id="L4154" class="LineNr">4154 </span> 68/push 0/imm32/end <span id="L4155" class="LineNr">4155 </span> 68/push 0/imm32/start <span id="L4156" class="LineNr">4156 </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="L4157" class="Folded">4157 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4157" class="Folded">4157 </span><span class="Folded">+-- 26 lines: #? # dump line --------------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L4183" class="LineNr">4183 </span> <span class="subxS1Comment"># . rewind-stream(line)</span> <span id="L4184" class="LineNr">4184 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4185" class="LineNr">4185 </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> @@ -3220,7 +3220,7 @@ if ('onhashchange' in window) { <span id="L4196" class="LineNr">4196 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L4197" class="LineNr">4197 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4198" class="LineNr">4198 </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> 8/imm32 <span class="subxComment"># add to esp</span> -<span id="L4199" class="Folded">4199 </span><span class="Folded">+-- 40 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> +<span id="L4199" class="Folded">4199 </span><span class="Folded">+-- 40 lines: #? # dump word-slice --------------------------------------------------------------------------------------------------------------------------------------------------</span> <span id="L4239" class="LineNr">4239 </span><span class="Constant">$num-bytes:check0</span>: <span id="L4240" class="LineNr">4240 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L4241" class="LineNr">4241 </span> <span class="subxS1Comment"># . save result</span> |