diff options
Diffstat (limited to 'html/apps')
-rw-r--r-- | html/apps/assort.subx.html | 26 | ||||
-rw-r--r-- | html/apps/braces.subx.html | 142 | ||||
-rw-r--r-- | html/apps/calls.subx.html | 4 | ||||
-rw-r--r-- | html/apps/dquotes.subx.html | 16 | ||||
-rw-r--r-- | html/apps/mulisp.subx.html | 22 | ||||
-rw-r--r-- | html/apps/pack.subx.html | 88 | ||||
-rw-r--r-- | html/apps/sigils.subx.html | 36 | ||||
-rw-r--r-- | html/apps/survey.subx.html | 78 |
8 files changed, 206 insertions, 206 deletions
diff --git a/html/apps/assort.subx.html b/html/apps/assort.subx.html index df8a29ea..8c4e8436 100644 --- a/html/apps/assort.subx.html +++ b/html/apps/assort.subx.html @@ -173,7 +173,7 @@ if ('onhashchange' in window) { <span id="L111" class="LineNr">111 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L112" class="LineNr">112 </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="L113" class="LineNr">113 </span><span class="Constant">$subx-assort:<a href='../060read.subx.html#L48'>read</a></span>: -<span id="L114" class="Folded">114 </span><span class="Folded">+-- 9 lines: #? # print("read\n") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L114" class="Folded">114 </span><span class="Folded">+-- 9 lines: #? # print("read\n") -----------------------------------------------------------------------------------------------------------------------</span> <span id="L123" class="LineNr">123 </span> <span class="subxComment"># read-segments(in, table)</span> <span id="L124" class="LineNr">124 </span> <span class="subxS2Comment"># . . push args</span> <span id="L125" class="LineNr">125 </span> 51/push-ecx @@ -183,7 +183,7 @@ if ('onhashchange' in window) { <span id="L129" class="LineNr">129 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L130" class="LineNr">130 </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="L131" class="LineNr">131 </span><span class="Constant">$subx-assort:<a href='../057write.subx.html#L24'>write</a></span>: -<span id="L132" class="Folded">132 </span><span class="Folded">+-- 9 lines: #? # print("write\n") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L132" class="Folded">132 </span><span class="Folded">+-- 9 lines: #? # print("write\n") ----------------------------------------------------------------------------------------------------------------------</span> <span id="L141" class="LineNr">141 </span> <span class="subxComment"># write-segments(out, table)</span> <span id="L142" class="LineNr">142 </span> <span class="subxS2Comment"># . . push args</span> <span id="L143" class="LineNr">143 </span> 51/push-ecx @@ -390,7 +390,7 @@ if ('onhashchange' in window) { <span id="L344" class="LineNr">344 </span> <span class="subxComment"># 10 11</span> <span id="L345" class="LineNr">345 </span> <span class="subxComment"># == data 0x0a000000</span> <span id="L346" class="LineNr">346 </span> <span class="subxComment"># 4 5/imm32</span> -<span id="L347" class="Folded">347 </span><span class="Folded">+-- 33 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L347" class="Folded">347 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L380" class="LineNr">380 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "== code 0x09000000", msg)</span> <span id="L381" class="LineNr">381 </span> <span class="subxS2Comment"># . . push args</span> <span id="L382" class="LineNr">382 </span> 68/push <span class="Constant">"F - <a href='assort.subx.html#L159'>test-subx-assort</a>/0"</span>/imm32 @@ -542,7 +542,7 @@ if ('onhashchange' in window) { <span id="L528" class="LineNr">528 </span> <span class="subxComment"># if (line->write == 0) break</span> <span id="L529" class="LineNr">529 </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> <span id="L530" class="LineNr">530 </span> 0f 84/jump-if-equal $read-segments:<span class="Constant">break</span>/disp32 -<span id="L531" class="Folded">531 </span><span class="Folded">+-- 33 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L531" class="Folded">531 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L564" class="LineNr">564 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L565" class="LineNr">565 </span> <span class="subxS2Comment"># . . push args</span> <span id="L566" class="LineNr">566 </span> 52/push-edx @@ -552,7 +552,7 @@ if ('onhashchange' in window) { <span id="L570" class="LineNr">570 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L571" class="LineNr">571 </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="L572" class="LineNr">572 </span><span class="Constant">$read-segments:check1</span>: -<span id="L573" class="Folded">573 </span><span class="Folded">+-- 9 lines: #? # print("check1\n") -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L573" class="Folded">573 </span><span class="Folded">+-- 9 lines: #? # print("check1\n") ---------------------------------------------------------------------------------------------------------------------</span> <span id="L582" class="LineNr">582 </span> <span class="subxComment"># if (slice-empty?(word-slice)) continue</span> <span id="L583" class="LineNr">583 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> <span id="L584" class="LineNr">584 </span> <span class="subxS2Comment"># . . push args</span> @@ -565,7 +565,7 @@ if ('onhashchange' in window) { <span id="L591" class="LineNr">591 </span> 3d/compare-eax-and 0/imm32 <span id="L592" class="LineNr">592 </span> 0f 85/jump-if-not-equal $read-segments:<span class="Constant">loop</span>/disp32 <span id="L593" class="LineNr">593 </span><span class="Constant">$read-segments:check-for-comment</span>: -<span id="L594" class="Folded">594 </span><span class="Folded">+-- 9 lines: #? # print("check for comment\n") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L594" class="Folded">594 </span><span class="Folded">+-- 9 lines: #? # print("check for comment\n") ----------------------------------------------------------------------------------------------------------</span> <span id="L603" class="LineNr">603 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) continue</span> <span id="L604" class="LineNr">604 </span> <span class="subxS1Comment"># . start/esi = word-slice->start</span> <span id="L605" class="LineNr">605 </span> 8b/copy 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to esi</span> @@ -576,8 +576,8 @@ if ('onhashchange' in window) { <span id="L610" class="LineNr">610 </span> 3d/compare-eax-and 0x23/imm32/hash <span id="L611" class="LineNr">611 </span> 0f 84/jump-if-equal $read-segments:<span class="Constant">loop</span>/disp32 <span id="L612" class="LineNr">612 </span><span class="Constant">$read-segments:check-for-segment-header</span>: -<span id="L613" class="Folded">613 </span><span class="Folded">+-- 9 lines: #? # print("check for segment header\n") -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L622" class="Folded">622 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L613" class="Folded">613 </span><span class="Folded">+-- 9 lines: #? # print("check for segment header\n") ---------------------------------------------------------------------------------------------------</span> +<span id="L622" class="Folded">622 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L664" class="LineNr">664 </span> <span class="subxComment"># if !slice-equal?(word-slice, "==") goto next check</span> <span id="L665" class="LineNr">665 </span> <span class="subxS1Comment"># . eax = slice-equal?(word-slice, "==")</span> <span id="L666" class="LineNr">666 </span> <span class="subxS2Comment"># . . push args</span> @@ -598,7 +598,7 @@ if ('onhashchange' in window) { <span id="L681" class="LineNr">681 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L682" class="LineNr">682 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L683" class="LineNr">683 </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="L684" class="Folded">684 </span><span class="Folded">+-- 42 lines: #? # dump segment name -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L684" class="Folded">684 </span><span class="Folded">+-- 42 lines: #? # dump segment name ---------------------------------------------------------------------------------------------------------------------</span> <span id="L726" class="LineNr">726 </span> <span class="subxComment"># segment-slot/eax = leaky-get-or-insert-slice(table, segment-name, row-size=8)</span> <span id="L727" class="LineNr">727 </span> <span class="subxS2Comment"># . . push args</span> <span id="L728" class="LineNr">728 </span> 68/push 8/imm32/row-size @@ -633,8 +633,8 @@ if ('onhashchange' in window) { <span id="L757" class="LineNr">757 </span> 89/copy 0/mod/indirect 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebx to *eax</span> <span id="L758" class="LineNr">758 </span> <span class="subxComment"># fall through</span> <span id="L759" class="LineNr">759 </span><span class="Constant">$read-segments:regular-line</span>: -<span id="L760" class="Folded">760 </span><span class="Folded">+-- 9 lines: #? # print("regular line\n") -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L769" class="Folded">769 </span><span class="Folded">+-- 33 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L760" class="Folded">760 </span><span class="Folded">+-- 9 lines: #? # print("regular line\n") ---------------------------------------------------------------------------------------------------------------</span> +<span id="L769" class="Folded">769 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L802" class="LineNr">802 </span> <span class="subxComment"># rewind-stream(line)</span> <span id="L803" class="LineNr">803 </span> <span class="subxS2Comment"># . . push args</span> <span id="L804" class="LineNr">804 </span> 51/push-ecx @@ -642,7 +642,7 @@ if ('onhashchange' in window) { <span id="L806" class="LineNr">806 </span> e8/call <a href='../055stream.subx.html#L54'>rewind-stream</a>/disp32 <span id="L807" class="LineNr">807 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L808" class="LineNr">808 </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="L809" class="Folded">809 </span><span class="Folded">+-- 9 lines: #? # print("write stream\n") -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L809" class="Folded">809 </span><span class="Folded">+-- 9 lines: #? # print("write stream\n") ---------------------------------------------------------------------------------------------------------------</span> <span id="L818" class="LineNr">818 </span> <span class="subxComment"># write-stream(curr-segment, line)</span> <span id="L819" class="LineNr">819 </span> <span class="subxS2Comment"># . . push args</span> <span id="L820" class="LineNr">820 </span> 51/push-ecx @@ -652,7 +652,7 @@ if ('onhashchange' in window) { <span id="L824" class="LineNr">824 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L825" class="LineNr">825 </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="L826" class="LineNr">826 </span> <span class="subxComment"># loop</span> -<span id="L827" class="Folded">827 </span><span class="Folded">+-- 9 lines: #? # print("loop\n") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L827" class="Folded">827 </span><span class="Folded">+-- 9 lines: #? # print("loop\n") -----------------------------------------------------------------------------------------------------------------------</span> <span id="L836" class="LineNr">836 </span> e9/jump $read-segments:<span class="Constant">loop</span>/disp32 <span id="L837" class="LineNr">837 </span><span class="Constant">$read-segments:break</span>: <span id="L838" class="LineNr">838 </span><span class="Constant">$read-segments:end</span>: diff --git a/html/apps/braces.subx.html b/html/apps/braces.subx.html index 7ad08b73..34220c66 100644 --- a/html/apps/braces.subx.html +++ b/html/apps/braces.subx.html @@ -114,12 +114,12 @@ if ('onhashchange' in window) { <span id="L54" class="LineNr"> 54 </span> <span class="subxS1Comment"># . prolog</span> <span id="L55" class="LineNr"> 55 </span> 89/<- %ebp 4/r32/esp <span id="L56" class="LineNr"> 56 </span> <span class="subxComment"># initialize heap</span> -<span id="L57" class="LineNr"> 57 </span> (new-segment <span class="SpecialChar"><a href='../069allocate.subx.html#L29'>Heap-size</a></span> <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>) +<span id="L57" class="LineNr"> 57 </span> (<a href='../053new-segment.subx.html#L41'>new-segment</a> <span class="SpecialChar"><a href='../069allocate.subx.html#L29'>Heap-size</a></span> <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>) <span id="L58" class="LineNr"> 58 </span> <span class="subxComment"># if (argc <= 1) goto interactive</span> <span id="L59" class="LineNr"> 59 </span> 81 7/subop/compare *ebp 1/imm32 <span id="L60" class="LineNr"> 60 </span> 7e/jump-if-lesser-or-equal $subx-braces-main:interactive/disp8 <span id="L61" class="LineNr"> 61 </span> <span class="subxComment"># if (argv[1] != "test")) goto interactive</span> -<span id="L62" class="LineNr"> 62 </span> (kernel-string-equal? *(ebp+8) <span class="Constant">"test"</span>) <span class="subxComment"># => eax</span> +<span id="L62" class="LineNr"> 62 </span> (<a href='../052kernel-string-equal.subx.html#L31'>kernel-string-equal?</a> *(ebp+8) <span class="Constant">"test"</span>) <span class="subxComment"># => eax</span> <span id="L63" class="LineNr"> 63 </span> 3d/compare-eax-and 0/imm32 <span id="L64" class="LineNr"> 64 </span> 74/jump-if-equal $subx-braces-main:interactive/disp8 <span id="L65" class="LineNr"> 65 </span> <span class="subxComment">#</span> @@ -128,7 +128,7 @@ if ('onhashchange' in window) { <span id="L68" class="LineNr"> 68 </span> 8b/-> *<span class="SpecialChar"><a href='../051test.subx.html#L90'>Num-test-failures</a></span> 3/r32/ebx <span id="L69" class="LineNr"> 69 </span> eb/jump $subx-braces-main:end/disp8 <span id="L70" class="LineNr"> 70 </span><span class="Constant">$subx-braces-main:interactive</span>: -<span id="L71" class="LineNr"> 71 </span> (subx-braces <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>) +<span id="L71" class="LineNr"> 71 </span> (<a href='braces.subx.html#L78'>subx-braces</a> <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>) <span id="L72" class="LineNr"> 72 </span> <span class="subxComment"># syscall(exit, 0)</span> <span id="L73" class="LineNr"> 73 </span> bb/copy-to-ebx 0/imm32 <span id="L74" class="LineNr"> 74 </span><span class="Constant">$subx-braces-main:end</span>: @@ -201,13 +201,13 @@ if ('onhashchange' in window) { <span id="L141" class="LineNr">141 </span> 68/push 0/imm32/start <span id="L142" class="LineNr">142 </span> 89/<- %edi 4/r32/esp <span id="L143" class="LineNr">143 </span><span class="Constant">$subx-braces:line-loop</span>: -<span id="L144" class="LineNr">144 </span> (clear-stream %ecx) -<span id="L145" class="LineNr">145 </span> (read-line-buffered %esi %ecx) +<span id="L144" class="LineNr">144 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %ecx) +<span id="L145" class="LineNr">145 </span> (<a href='../071read-line.subx.html#L9'>read-line-buffered</a> %esi %ecx) <span id="L146" class="LineNr">146 </span><span class="Constant">$subx-braces:check0</span>: <span id="L147" class="LineNr">147 </span> <span class="subxComment"># if (line->write == 0) break</span> <span id="L148" class="LineNr">148 </span> 81 7/subop/compare *ecx 0/imm32 <span id="L149" class="LineNr">149 </span> 0f 84/jump-if-equal $subx-braces:<span class="Constant">break</span>/disp32 -<span id="L150" class="LineNr">150 </span> (skip-chars-matching-whitespace %ecx) +<span id="L150" class="LineNr">150 </span> (<a href='../073next-token.subx.html#L464'>skip-chars-matching-whitespace</a> %ecx) <span id="L151" class="LineNr">151 </span><span class="Constant">$subx-braces:check-for-curly-open</span>: <span id="L152" class="LineNr">152 </span> <span class="subxComment"># if (line->data[line->read] != '{') goto next check</span> <span id="L153" class="LineNr">153 </span> <span class="subxS1Comment"># . eax = line->data[line->read]</span> @@ -219,11 +219,11 @@ if ('onhashchange' in window) { <span id="L159" class="LineNr">159 </span> 0f 85/jump-if-not-equal $subx-braces:check-for-curly-closed/disp32 <span id="L160" class="LineNr">160 </span><span class="Constant">$subx-braces:emit-curly-open</span>: <span id="L161" class="LineNr">161 </span> <span class="subxComment"># print(out, "_loop" next-label-id ":")</span> -<span id="L162" class="LineNr">162 </span> (write-buffered *(ebp+0xc) <span class="Constant">"_loop"</span>) -<span id="L163" class="LineNr">163 </span> (print-int32-buffered *(ebp+0xc) %ebx) -<span id="L164" class="LineNr">164 </span> (write-buffered *(ebp+0xc) <span class="Constant">":"</span>) +<span id="L162" class="LineNr">162 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_loop"</span>) +<span id="L163" class="LineNr">163 </span> (<a href='../066print-int.subx.html#L267'>print-int32-buffered</a> *(ebp+0xc) %ebx) +<span id="L164" class="LineNr">164 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">":"</span>) <span id="L165" class="LineNr">165 </span> <span class="subxComment"># push(label-stack, next-label-id)</span> -<span id="L166" class="LineNr">166 </span> (push %edx %ebx) +<span id="L166" class="LineNr">166 </span> (<a href='braces.subx.html#L445'>push</a> %edx %ebx) <span id="L167" class="LineNr">167 </span> <span class="subxComment"># ++next-label-id</span> <span id="L168" class="LineNr">168 </span> ff 0/subop/increment %ebx <span id="L169" class="LineNr">169 </span> <span class="subxComment"># continue</span> @@ -234,18 +234,18 @@ if ('onhashchange' in window) { <span id="L174" class="LineNr">174 </span> 0f 85/jump-if-equal $subx-braces:word-loop/disp32 <span id="L175" class="LineNr">175 </span><span class="Constant">$subx-braces:emit-curly-closed</span>: <span id="L176" class="LineNr">176 </span> <span class="subxComment"># eax = pop(label-stack)</span> -<span id="L177" class="LineNr">177 </span> (pop %edx) +<span id="L177" class="LineNr">177 </span> (<a href='braces.subx.html#L521'>pop</a> %edx) <span id="L178" class="LineNr">178 </span> <span class="subxComment"># print(out, "_break" eax ":")</span> -<span id="L179" class="LineNr">179 </span> (write-buffered *(ebp+0xc) <span class="Constant">"_break"</span>) -<span id="L180" class="LineNr">180 </span> (print-int32-buffered *(ebp+0xc) %eax) -<span id="L181" class="LineNr">181 </span> (write-buffered *(ebp+0xc) <span class="Constant">":"</span>) +<span id="L179" class="LineNr">179 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_break"</span>) +<span id="L180" class="LineNr">180 </span> (<a href='../066print-int.subx.html#L267'>print-int32-buffered</a> *(ebp+0xc) %eax) +<span id="L181" class="LineNr">181 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">":"</span>) <span id="L182" class="LineNr">182 </span> <span class="subxComment"># continue</span> <span id="L183" class="LineNr">183 </span> e9/jump $subx-braces:next-line/disp32 <span id="L184" class="LineNr">184 </span><span class="Constant">$subx-braces:word-loop</span>: -<span id="L185" class="LineNr">185 </span> (next-word-or-string %ecx %edi) +<span id="L185" class="LineNr">185 </span> (<a href='../094next-word-or-string.subx.html#L8'>next-word-or-string</a> %ecx %edi) <span id="L186" class="LineNr">186 </span><span class="Constant">$subx-braces:check1</span>: <span id="L187" class="LineNr">187 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> -<span id="L188" class="LineNr">188 </span> (slice-empty? %edi) +<span id="L188" class="LineNr">188 </span> (<a href='../072slice.subx.html#L9'>slice-empty?</a> %edi) <span id="L189" class="LineNr">189 </span> 3d/compare-eax-and 0/imm32 <span id="L190" class="LineNr">190 </span> 0f 85/jump-if-not-equal $subx-braces:next-line/disp32 <span id="L191" class="LineNr">191 </span><span class="Constant">$subx-braces:check-for-comment</span>: @@ -260,15 +260,15 @@ if ('onhashchange' in window) { <span id="L200" class="LineNr">200 </span><span class="Constant">$subx-braces:check-for-break</span>: <span id="L201" class="LineNr">201 </span> <span class="subxComment"># if (!slice-starts-with?(word-slice, "break/")) goto next check</span> <span id="L202" class="LineNr">202 </span> <span class="subxS1Comment"># . eax = slice-starts-with?(word-slice, "break/")</span> -<span id="L203" class="LineNr">203 </span> (slice-starts-with? %edi <span class="Constant">"break/"</span>) +<span id="L203" class="LineNr">203 </span> (<a href='../072slice.subx.html#L457'>slice-starts-with?</a> %edi <span class="Constant">"break/"</span>) <span id="L204" class="LineNr">204 </span> <span class="subxS1Comment"># . if (eax == 0) goto next check</span> <span id="L205" class="LineNr">205 </span> 3d/compare-eax-and 0/imm32 <span id="L206" class="LineNr">206 </span> 74/jump-if-equal $subx-braces:check-for-loop/disp8 <span id="L207" class="LineNr">207 </span><span class="Constant">$subx-braces:emit-break</span>: -<span id="L208" class="LineNr">208 </span> (top %edx) +<span id="L208" class="LineNr">208 </span> (<a href='braces.subx.html#L591'>top</a> %edx) <span id="L209" class="LineNr">209 </span> <span class="subxComment"># print(out, "_break" eax)</span> -<span id="L210" class="LineNr">210 </span> (write-buffered *(ebp+0xc) <span class="Constant">"_break"</span>) -<span id="L211" class="LineNr">211 </span> (print-int32-buffered *(ebp+0xc) %eax) +<span id="L210" class="LineNr">210 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_break"</span>) +<span id="L211" class="LineNr">211 </span> (<a href='../066print-int.subx.html#L267'>print-int32-buffered</a> *(ebp+0xc) %eax) <span id="L212" class="LineNr">212 </span> <span class="subxComment"># word-slice->start += len("break")</span> <span id="L213" class="LineNr">213 </span> 81 0/subop/add *edi 5/imm32/strlen <span id="L214" class="LineNr">214 </span> <span class="subxComment"># emit rest of word as usual</span> @@ -276,31 +276,31 @@ if ('onhashchange' in window) { <span id="L216" class="LineNr">216 </span><span class="Constant">$subx-braces:check-for-loop</span>: <span id="L217" class="LineNr">217 </span> <span class="subxComment"># if (!slice-starts-with?(word-slice, "loop/")) emit word</span> <span id="L218" class="LineNr">218 </span> <span class="subxS1Comment"># . eax = slice-starts-with?(word-slice, "loop/")</span> -<span id="L219" class="LineNr">219 </span> (slice-starts-with? %edi <span class="Constant">"loop/"</span>) +<span id="L219" class="LineNr">219 </span> (<a href='../072slice.subx.html#L457'>slice-starts-with?</a> %edi <span class="Constant">"loop/"</span>) <span id="L220" class="LineNr">220 </span> <span class="subxS1Comment"># . if (eax == 0) goto next check</span> <span id="L221" class="LineNr">221 </span> 3d/compare-eax-and 0/imm32 <span id="L222" class="LineNr">222 </span> 74/jump-if-equal $subx-braces:emit-word-slice/disp8 <span id="L223" class="LineNr">223 </span><span class="Constant">$subx-braces:emit-loop</span>: -<span id="L224" class="LineNr">224 </span> (top %edx) +<span id="L224" class="LineNr">224 </span> (<a href='braces.subx.html#L591'>top</a> %edx) <span id="L225" class="LineNr">225 </span> <span class="subxComment"># print(out, "_loop" eax)</span> -<span id="L226" class="LineNr">226 </span> (write-buffered *(ebp+0xc) <span class="Constant">"_loop"</span>) -<span id="L227" class="LineNr">227 </span> (print-int32-buffered *(ebp+0xc) %eax) +<span id="L226" class="LineNr">226 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_loop"</span>) +<span id="L227" class="LineNr">227 </span> (<a href='../066print-int.subx.html#L267'>print-int32-buffered</a> *(ebp+0xc) %eax) <span id="L228" class="LineNr">228 </span> <span class="subxComment"># word-slice->start += len("loop")</span> <span id="L229" class="LineNr">229 </span> 81 0/subop/add *edi 4/imm32/strlen <span id="L230" class="LineNr">230 </span> <span class="subxComment"># fall through</span> <span id="L231" class="LineNr">231 </span><span class="Constant">$subx-braces:emit-word-slice</span>: <span id="L232" class="LineNr">232 </span> <span class="subxComment"># print(out, word-slice " ")</span> -<span id="L233" class="LineNr">233 </span> (write-slice-buffered *(ebp+0xc) %edi) -<span id="L234" class="LineNr">234 </span> (write-buffered *(ebp+0xc) <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>) +<span id="L233" class="LineNr">233 </span> (<a href='../072slice.subx.html#L878'>write-slice-buffered</a> *(ebp+0xc) %edi) +<span id="L234" class="LineNr">234 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>) <span id="L235" class="LineNr">235 </span> <span class="subxComment"># loop to next word</span> <span id="L236" class="LineNr">236 </span> e9/jump $subx-braces:word-loop/disp32 <span id="L237" class="LineNr">237 </span><span class="Constant">$subx-braces:next-line</span>: <span id="L238" class="LineNr">238 </span> <span class="subxComment"># print(out, "\n")</span> -<span id="L239" class="LineNr">239 </span> (write-buffered *(ebp+0xc) <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>) +<span id="L239" class="LineNr">239 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>) <span id="L240" class="LineNr">240 </span> <span class="subxComment"># loop to next line</span> <span id="L241" class="LineNr">241 </span> e9/jump $subx-braces:line-loop/disp32 <span id="L242" class="LineNr">242 </span><span class="Constant">$subx-braces:break</span>: -<span id="L243" class="LineNr">243 </span> (flush *(ebp+0xc)) +<span id="L243" class="LineNr">243 </span> (<a href='../064write-byte.subx.html#L79'>flush</a> *(ebp+0xc)) <span id="L244" class="LineNr">244 </span><span class="Constant">$subx-braces:end</span>: <span id="L245" class="LineNr">245 </span> <span class="subxS1Comment"># . reclaim locals</span> <span id="L246" class="LineNr">246 </span> 81 0/subop/add %esp 0x29c/imm32 @@ -321,23 +321,23 @@ if ('onhashchange' in window) { <span id="L261" class="LineNr">261 </span> 55/push-ebp <span id="L262" class="LineNr">262 </span> 89/<- %ebp 4/r32/esp <span id="L263" class="LineNr">263 </span> <span class="subxComment"># setup</span> -<span id="L264" class="LineNr">264 </span> (clear-stream _test-input-stream) -<span id="L265" class="LineNr">265 </span> (clear-stream _test-output-stream) +<span id="L264" class="LineNr">264 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> _test-input-stream) +<span id="L265" class="LineNr">265 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> _test-output-stream) <span id="L266" class="LineNr">266 </span> <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file+4)</span> <span id="L267" class="LineNr">267 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a>/imm32 <span id="L268" class="LineNr">268 </span> 05/add-to-eax 4/imm32 -<span id="L269" class="LineNr">269 </span> (clear-stream %eax) +<span id="L269" class="LineNr">269 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %eax) <span id="L270" class="LineNr">270 </span> <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file+4)</span> <span id="L271" class="LineNr">271 </span> b8/copy-to-eax <a href='../064write-byte.subx.html#L332'>_test-output-buffered-file</a>/imm32 <span id="L272" class="LineNr">272 </span> 05/add-to-eax 4/imm32 -<span id="L273" class="LineNr">273 </span> (clear-stream %eax) +<span id="L273" class="LineNr">273 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %eax) <span id="L274" class="LineNr">274 </span> <span class="subxComment"># test</span> -<span id="L275" class="LineNr">275 </span> (write <a href='../061read-byte.subx.html#L293'>_test-input-stream</a> <span class="Constant">"== abcd 0x1"</span>) -<span id="L276" class="LineNr">276 </span> (subx-braces <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a> _test-output-buffered-file) +<span id="L275" class="LineNr">275 </span> (<a href='../057write.subx.html#L24'>write</a> <a href='../061read-byte.subx.html#L293'>_test-input-stream</a> <span class="Constant">"== abcd 0x1"</span>) +<span id="L276" class="LineNr">276 </span> (<a href='braces.subx.html#L78'>subx-braces</a> <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a> _test-output-buffered-file) <span id="L277" class="LineNr">277 </span> <span class="subxComment"># check that the line just passed through</span> -<span id="L278" class="LineNr">278 </span> (flush _test-output-buffered-file) -<span id="L279" class="Folded">279 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L284" class="LineNr">284 </span> (check-stream-equal <a href='../064write-byte.subx.html#L290'>_test-output-stream</a> <span class="Constant">"== abcd 0x1 \n"</span> <span class="Constant">"F - test-subx-braces-passes-most-words-through"</span>) +<span id="L278" class="LineNr">278 </span> (<a href='../064write-byte.subx.html#L79'>flush</a> _test-output-buffered-file) +<span id="L279" class="Folded">279 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> +<span id="L284" class="LineNr">284 </span> (<a href='../058stream-equal.subx.html#L193'>check-stream-equal</a> <a href='../064write-byte.subx.html#L290'>_test-output-stream</a> <span class="Constant">"== abcd 0x1 \n"</span> <span class="Constant">"F - test-subx-braces-passes-most-words-through"</span>) <span id="L285" class="LineNr">285 </span> <span class="subxS1Comment"># . epilog</span> <span id="L286" class="LineNr">286 </span> 89/<- %esp 5/r32/ebp <span id="L287" class="LineNr">287 </span> 5d/pop-to-ebp @@ -360,23 +360,23 @@ if ('onhashchange' in window) { <span id="L304" class="LineNr">304 </span> 55/push-ebp <span id="L305" class="LineNr">305 </span> 89/<- %ebp 4/r32/esp <span id="L306" class="LineNr">306 </span> <span class="subxComment"># setup</span> -<span id="L307" class="LineNr">307 </span> (clear-stream _test-input-stream) -<span id="L308" class="LineNr">308 </span> (clear-stream _test-output-stream) +<span id="L307" class="LineNr">307 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> _test-input-stream) +<span id="L308" class="LineNr">308 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> _test-output-stream) <span id="L309" class="LineNr">309 </span> <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file+4)</span> <span id="L310" class="LineNr">310 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a>/imm32 <span id="L311" class="LineNr">311 </span> 05/add-to-eax 4/imm32 -<span id="L312" class="LineNr">312 </span> (clear-stream %eax) +<span id="L312" class="LineNr">312 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %eax) <span id="L313" class="LineNr">313 </span> <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file+4)</span> <span id="L314" class="LineNr">314 </span> b8/copy-to-eax <a href='../064write-byte.subx.html#L332'>_test-output-buffered-file</a>/imm32 <span id="L315" class="LineNr">315 </span> 05/add-to-eax 4/imm32 -<span id="L316" class="LineNr">316 </span> (clear-stream %eax) +<span id="L316" class="LineNr">316 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %eax) <span id="L317" class="LineNr">317 </span> <span class="subxComment"># test</span> -<span id="L318" class="LineNr">318 </span> (write <a href='../061read-byte.subx.html#L293'>_test-input-stream</a> <span class="Constant">"{\nab break/imm32\ncd loop/imm32\n}"</span>) -<span id="L319" class="LineNr">319 </span> (subx-braces <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a> _test-output-buffered-file) +<span id="L318" class="LineNr">318 </span> (<a href='../057write.subx.html#L24'>write</a> <a href='../061read-byte.subx.html#L293'>_test-input-stream</a> <span class="Constant">"{\nab break/imm32\ncd loop/imm32\n}"</span>) +<span id="L319" class="LineNr">319 </span> (<a href='braces.subx.html#L78'>subx-braces</a> <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a> _test-output-buffered-file) <span id="L320" class="LineNr">320 </span> <span class="subxComment"># check that the line just passed through</span> -<span id="L321" class="LineNr">321 </span> (flush _test-output-buffered-file) -<span id="L322" class="Folded">322 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L327" class="LineNr">327 </span> (check-stream-equal <a href='../064write-byte.subx.html#L290'>_test-output-stream</a> <span class="Constant">"_loop0x00000001:\nab _break0x00000001/imm32 \ncd _loop0x00000001/imm32 \n_break0x00000001:\n"</span> <span class="Constant">"F - test-subx-braces-1"</span>) +<span id="L321" class="LineNr">321 </span> (<a href='../064write-byte.subx.html#L79'>flush</a> _test-output-buffered-file) +<span id="L322" class="Folded">322 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> +<span id="L327" class="LineNr">327 </span> (<a href='../058stream-equal.subx.html#L193'>check-stream-equal</a> <a href='../064write-byte.subx.html#L290'>_test-output-stream</a> <span class="Constant">"_loop0x00000001:\nab _break0x00000001/imm32 \ncd _loop0x00000001/imm32 \n_break0x00000001:\n"</span> <span class="Constant">"F - test-subx-braces-1"</span>) <span id="L328" class="LineNr">328 </span> <span class="subxS1Comment"># . epilog</span> <span id="L329" class="LineNr">329 </span> 89/<- %esp 5/r32/ebp <span id="L330" class="LineNr">330 </span> 5d/pop-to-ebp @@ -403,23 +403,23 @@ if ('onhashchange' in window) { <span id="L351" class="LineNr">351 </span> 55/push-ebp <span id="L352" class="LineNr">352 </span> 89/<- %ebp 4/r32/esp <span id="L353" class="LineNr">353 </span> <span class="subxComment"># setup</span> -<span id="L354" class="LineNr">354 </span> (clear-stream _test-input-stream) -<span id="L355" class="LineNr">355 </span> (clear-stream _test-output-stream) +<span id="L354" class="LineNr">354 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> _test-input-stream) +<span id="L355" class="LineNr">355 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> _test-output-stream) <span id="L356" class="LineNr">356 </span> <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file+4)</span> <span id="L357" class="LineNr">357 </span> b8/copy-to-eax <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a>/imm32 <span id="L358" class="LineNr">358 </span> 05/add-to-eax 4/imm32 -<span id="L359" class="LineNr">359 </span> (clear-stream %eax) +<span id="L359" class="LineNr">359 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %eax) <span id="L360" class="LineNr">360 </span> <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file+4)</span> <span id="L361" class="LineNr">361 </span> b8/copy-to-eax <a href='../064write-byte.subx.html#L332'>_test-output-buffered-file</a>/imm32 <span id="L362" class="LineNr">362 </span> 05/add-to-eax 4/imm32 -<span id="L363" class="LineNr">363 </span> (clear-stream %eax) +<span id="L363" class="LineNr">363 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %eax) <span id="L364" class="LineNr">364 </span> <span class="subxComment"># test</span> -<span id="L365" class="LineNr">365 </span> (write <a href='../061read-byte.subx.html#L293'>_test-input-stream</a> <span class="Constant">"{\n{\nab break/imm32\n}\ncd loop/imm32\n}"</span>) -<span id="L366" class="LineNr">366 </span> (subx-braces <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a> _test-output-buffered-file) +<span id="L365" class="LineNr">365 </span> (<a href='../057write.subx.html#L24'>write</a> <a href='../061read-byte.subx.html#L293'>_test-input-stream</a> <span class="Constant">"{\n{\nab break/imm32\n}\ncd loop/imm32\n}"</span>) +<span id="L366" class="LineNr">366 </span> (<a href='braces.subx.html#L78'>subx-braces</a> <a href='../061read-byte.subx.html#L319'>_test-input-buffered-file</a> _test-output-buffered-file) <span id="L367" class="LineNr">367 </span> <span class="subxComment"># check that the line just passed through</span> -<span id="L368" class="LineNr">368 </span> (flush _test-output-buffered-file) -<span id="L369" class="Folded">369 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L374" class="LineNr">374 </span> (check-stream-equal <a href='../064write-byte.subx.html#L290'>_test-output-stream</a> <span class="Constant">"_loop0x00000001:\n_loop0x00000002:\nab _break0x00000002/imm32 \n_break0x00000002:\ncd _loop0x00000001/imm32 \n_break0x00000001:\n"</span> <span class="Constant">"F - test-subx-braces-2"</span>) +<span id="L368" class="LineNr">368 </span> (<a href='../064write-byte.subx.html#L79'>flush</a> _test-output-buffered-file) +<span id="L369" class="Folded">369 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> +<span id="L374" class="LineNr">374 </span> (<a href='../058stream-equal.subx.html#L193'>check-stream-equal</a> <a href='../064write-byte.subx.html#L290'>_test-output-stream</a> <span class="Constant">"_loop0x00000001:\n_loop0x00000002:\nab _break0x00000002/imm32 \n_break0x00000002:\ncd _loop0x00000001/imm32 \n_break0x00000001:\n"</span> <span class="Constant">"F - test-subx-braces-2"</span>) <span id="L375" class="LineNr">375 </span> <span class="subxS1Comment"># . epilog</span> <span id="L376" class="LineNr">376 </span> 89/<- %esp 5/r32/ebp <span id="L377" class="LineNr">377 </span> 5d/pop-to-ebp @@ -475,19 +475,19 @@ if ('onhashchange' in window) { <span id="L427" class="LineNr">427 </span> 68/push 14/imm32/top <span id="L428" class="LineNr">428 </span> 89/<- %ecx 4/r32/esp <span id="L429" class="LineNr">429 </span> <span class="subxComment"># clear</span> -<span id="L430" class="LineNr">430 </span> (clear-stack %ecx) +<span id="L430" class="LineNr">430 </span> (<a href='braces.subx.html#L387'>clear-stack</a> %ecx) <span id="L431" class="LineNr">431 </span> <span class="subxComment"># top should be 0</span> <span id="L432" class="LineNr">432 </span> 58/pop-to-eax -<span id="L433" class="LineNr">433 </span> (check-ints-equal %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: top"</span>) +<span id="L433" class="LineNr">433 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: top"</span>) <span id="L434" class="LineNr">434 </span> <span class="subxComment"># length should remain 8</span> <span id="L435" class="LineNr">435 </span> 58/pop-to-eax -<span id="L436" class="LineNr">436 </span> (check-ints-equal %eax 8 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: length"</span>) +<span id="L436" class="LineNr">436 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 8 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: length"</span>) <span id="L437" class="LineNr">437 </span> <span class="subxComment"># first word is 0</span> <span id="L438" class="LineNr">438 </span> 58/pop-to-eax -<span id="L439" class="LineNr">439 </span> (check-ints-equal %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: data[0..3]"</span>) +<span id="L439" class="LineNr">439 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: data[0..3]"</span>) <span id="L440" class="LineNr">440 </span> <span class="subxComment"># second word is 0</span> <span id="L441" class="LineNr">441 </span> 58/pop-to-eax -<span id="L442" class="LineNr">442 </span> (check-ints-equal %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: data[4..7]"</span>) +<span id="L442" class="LineNr">442 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L422'>test-clear-stack</a>: data[4..7]"</span>) <span id="L443" class="LineNr">443 </span> c3/return <span id="L444" class="LineNr">444 </span> <span id="L445" class="LineNr">445 </span><span class="subxFunction">push</span>: <span class="subxComment"># s : (address stack), n : int</span> @@ -551,19 +551,19 @@ if ('onhashchange' in window) { <span id="L503" class="LineNr">503 </span> 68/push 0/imm32/top <span id="L504" class="LineNr">504 </span> 89/<- %ecx 4/r32/esp <span id="L505" class="LineNr">505 </span> <span class="subxComment">#</span> -<span id="L506" class="LineNr">506 </span> (push %ecx 42) +<span id="L506" class="LineNr">506 </span> (<a href='braces.subx.html#L445'>push</a> %ecx 42) <span id="L507" class="LineNr">507 </span> <span class="subxComment"># top</span> <span id="L508" class="LineNr">508 </span> 58/pop-to-eax -<span id="L509" class="LineNr">509 </span> (check-ints-equal %eax 4 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: top"</span>) +<span id="L509" class="LineNr">509 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 4 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: top"</span>) <span id="L510" class="LineNr">510 </span> <span class="subxComment"># length</span> <span id="L511" class="LineNr">511 </span> 58/pop-to-eax -<span id="L512" class="LineNr">512 </span> (check-ints-equal %eax 8 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: length"</span>) +<span id="L512" class="LineNr">512 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 8 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: length"</span>) <span id="L513" class="LineNr">513 </span> <span class="subxComment"># first word is 42</span> <span id="L514" class="LineNr">514 </span> 58/pop-to-eax -<span id="L515" class="LineNr">515 </span> (check-ints-equal %eax 42 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: data[0..3]"</span>) +<span id="L515" class="LineNr">515 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 42 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: data[0..3]"</span>) <span id="L516" class="LineNr">516 </span> <span class="subxComment"># second word is 0</span> <span id="L517" class="LineNr">517 </span> 58/pop-to-eax -<span id="L518" class="LineNr">518 </span> (check-ints-equal %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: data[4..7]"</span>) +<span id="L518" class="LineNr">518 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L498'>test-push</a>: data[4..7]"</span>) <span id="L519" class="LineNr">519 </span> c3/return <span id="L520" class="LineNr">520 </span> <span id="L521" class="LineNr">521 </span><span class="subxFunction">pop</span>: <span class="subxComment"># s : (address stack) -> n/eax : int</span> @@ -623,15 +623,15 @@ if ('onhashchange' in window) { <span id="L575" class="LineNr">575 </span> 68/push 4/imm32/top <span id="L576" class="LineNr">576 </span> 89/<- %ecx 4/r32/esp <span id="L577" class="LineNr">577 </span> <span class="subxComment">#</span> -<span id="L578" class="LineNr">578 </span> (pop %ecx) <span class="subxComment"># => eax</span> +<span id="L578" class="LineNr">578 </span> (<a href='braces.subx.html#L521'>pop</a> %ecx) <span class="subxComment"># => eax</span> <span id="L579" class="LineNr">579 </span> <span class="subxComment"># result</span> -<span id="L580" class="LineNr">580 </span> (check-ints-equal %eax 42 <span class="Constant">"F - <a href='braces.subx.html#L570'>test-pop</a>: result"</span>) +<span id="L580" class="LineNr">580 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 42 <span class="Constant">"F - <a href='braces.subx.html#L570'>test-pop</a>: result"</span>) <span id="L581" class="LineNr">581 </span> <span class="subxComment"># top</span> <span id="L582" class="LineNr">582 </span> 58/pop-to-eax -<span id="L583" class="LineNr">583 </span> (check-ints-equal %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L570'>test-pop</a>: top"</span>) +<span id="L583" class="LineNr">583 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 0 <span class="Constant">"F - <a href='braces.subx.html#L570'>test-pop</a>: top"</span>) <span id="L584" class="LineNr">584 </span> <span class="subxComment"># length</span> <span id="L585" class="LineNr">585 </span> 58/pop-to-eax -<span id="L586" class="LineNr">586 </span> (check-ints-equal %eax 8 <span class="Constant">"F - <a href='braces.subx.html#L570'>test-pop</a>: length"</span>) +<span id="L586" class="LineNr">586 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 8 <span class="Constant">"F - <a href='braces.subx.html#L570'>test-pop</a>: length"</span>) <span id="L587" class="LineNr">587 </span> <span class="subxComment"># clean up</span> <span id="L588" class="LineNr">588 </span> 81 0/subop/add %esp 8/imm32 <span id="L589" class="LineNr">589 </span> c3/return @@ -692,9 +692,9 @@ if ('onhashchange' in window) { <span id="L644" class="LineNr">644 </span> 68/push 4/imm32/top <span id="L645" class="LineNr">645 </span> 89/<- %ecx 4/r32/esp <span id="L646" class="LineNr">646 </span> <span class="subxComment">#</span> -<span id="L647" class="LineNr">647 </span> (top %ecx) <span class="subxComment"># => eax</span> +<span id="L647" class="LineNr">647 </span> (<a href='braces.subx.html#L591'>top</a> %ecx) <span class="subxComment"># => eax</span> <span id="L648" class="LineNr">648 </span> <span class="subxComment"># result</span> -<span id="L649" class="LineNr">649 </span> (check-ints-equal %eax 42 <span class="Constant">"F - <a href='braces.subx.html#L639'>test-top</a>: result"</span>) +<span id="L649" class="LineNr">649 </span> (<a href='../051test.subx.html#L24'>check-ints-equal</a> %eax 42 <span class="Constant">"F - <a href='braces.subx.html#L639'>test-top</a>: result"</span>) <span id="L650" class="LineNr">650 </span> <span class="subxComment"># clean up</span> <span id="L651" class="LineNr">651 </span> 81 0/subop/add %esp 0x10/imm32 <span id="L652" class="LineNr">652 </span> c3/return diff --git a/html/apps/calls.subx.html b/html/apps/calls.subx.html index 441dd54c..5fe3e463 100644 --- a/html/apps/calls.subx.html +++ b/html/apps/calls.subx.html @@ -332,7 +332,7 @@ if ('onhashchange' in window) { <span id="L271" class="LineNr"> 271 </span> <span class="subxS1Comment"># . if (eax != 0) break</span> <span id="L272" class="LineNr"> 272 </span> 3d/compare-eax-and 0/imm32 <span id="L273" class="LineNr"> 273 </span> 0f 85/jump-if-not-equal $parse-line:end/disp32 -<span id="L274" class="Folded"> 274 </span><span class="Folded">+-- 46 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L274" class="Folded"> 274 </span><span class="Folded">+-- 46 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L320" class="LineNr"> 320 </span><span class="Constant">$parse-line:write-word</span>: <span id="L321" class="LineNr"> 321 </span> <span class="subxComment"># write-int(words, word-slice->start)</span> <span id="L322" class="LineNr"> 322 </span> <span class="subxS2Comment"># . . push args</span> @@ -697,7 +697,7 @@ if ('onhashchange' in window) { <span id="L681" class="LineNr"> 681 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L682" class="LineNr"> 682 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L683" class="LineNr"> 683 </span> 81 0/subop/add %esp 4/imm32 -<span id="L684" class="Folded"> 684 </span><span class="Folded">+-- 33 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L684" class="Folded"> 684 </span><span class="Folded">+-- 33 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L717" class="LineNr"> 717 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "# . (foo %eax)", msg)</span> <span id="L718" class="LineNr"> 718 </span> <span class="subxS2Comment"># . . push args</span> <span id="L719" class="LineNr"> 719 </span> 68/push <span class="Constant">"F - <a href='calls.subx.html#L623'>test-subx-calls-processes-calls</a>: comment"</span>/imm32 diff --git a/html/apps/dquotes.subx.html b/html/apps/dquotes.subx.html index c007fe7b..61cfe70a 100644 --- a/html/apps/dquotes.subx.html +++ b/html/apps/dquotes.subx.html @@ -591,7 +591,7 @@ if ('onhashchange' in window) { <span id="L528" class="LineNr"> 528 </span> <span class="subxComment"># == data 0x2</span> <span id="L529" class="LineNr"> 529 </span> <span class="subxComment"># 4 5/imm32</span> <span id="L530" class="LineNr"> 530 </span> <span class="subxComment"># We don't care right now what exactly happens to comments. Trailing spaces are also minor details.</span> -<span id="L531" class="Folded"> 531 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L531" class="Folded"> 531 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L557" class="LineNr"> 557 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "", msg)</span> <span id="L558" class="LineNr"> 558 </span> <span class="subxS2Comment"># . . push args</span> <span id="L559" class="LineNr"> 559 </span> 68/push <span class="Constant">"F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/0"</span>/imm32 @@ -772,7 +772,7 @@ if ('onhashchange' in window) { <span id="L734" class="LineNr"> 734 </span> <span class="subxComment"># called. We just want to make sure instructions using string literals</span> <span id="L735" class="LineNr"> 735 </span> <span class="subxComment"># switch to a string variable with the right value.</span> <span id="L736" class="LineNr"> 736 </span> <span class="subxComment"># (Modifying string literals completely off the radar for now.)</span> -<span id="L737" class="Folded"> 737 </span><span class="Folded">+-- 33 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L737" class="Folded"> 737 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L770" class="LineNr"> 770 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "== code 0x1 ", msg)</span> <span id="L771" class="LineNr"> 771 </span> <span class="subxS2Comment"># . . push args</span> <span id="L772" class="LineNr"> 772 </span> 68/push <span class="Constant">"F - <a href='dquotes.subx.html#L643'>test-subx-dquotes-processes-string-literals</a>/0"</span>/imm32 @@ -1086,7 +1086,7 @@ if ('onhashchange' in window) { <span id="L1080" class="LineNr">1080 </span> e8/call <a href='dquotes.subx.html#L848'>emit-string-literal-data</a>/disp32 <span id="L1081" class="LineNr">1081 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1082" class="LineNr">1082 </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="L1083" class="Folded">1083 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1083" class="Folded">1083 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1109" class="LineNr">1109 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "3/imm32 61/a 62/b 63/c ", msg)</span> <span id="L1110" class="LineNr">1110 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1111" class="LineNr">1111 </span> 68/push <span class="Constant">"F - test-emit-string-literal-data"</span>/imm32 @@ -1125,7 +1125,7 @@ if ('onhashchange' in window) { <span id="L1144" class="LineNr">1144 </span> e8/call <a href='dquotes.subx.html#L848'>emit-string-literal-data</a>/disp32 <span id="L1145" class="LineNr">1145 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1146" class="LineNr">1146 </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="L1147" class="Folded">1147 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1147" class="Folded">1147 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1173" class="LineNr">1173 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "0/imm32 ", msg)</span> <span id="L1174" class="LineNr">1174 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1175" class="LineNr">1175 </span> 68/push <span class="Constant">"F - test-emit-string-literal-data-empty"</span>/imm32 @@ -1165,7 +1165,7 @@ if ('onhashchange' in window) { <span id="L1209" class="LineNr">1209 </span> e8/call <a href='dquotes.subx.html#L848'>emit-string-literal-data</a>/disp32 <span id="L1210" class="LineNr">1210 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1211" class="LineNr">1211 </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="L1212" class="Folded">1212 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1212" class="Folded">1212 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1238" class="LineNr">1238 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "3/imm32 61/a 20 62/b ", msg) # ideally we'd like to say '20/space' but that requires managing names for codepoints</span> <span id="L1239" class="LineNr">1239 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1240" class="LineNr">1240 </span> 68/push <span class="Constant">"F - test-emit-string-literal-data-no-metadata-for-non-alphanumerics"</span>/imm32 @@ -1204,7 +1204,7 @@ if ('onhashchange' in window) { <span id="L1273" class="LineNr">1273 </span> e8/call <a href='dquotes.subx.html#L848'>emit-string-literal-data</a>/disp32 <span id="L1274" class="LineNr">1274 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1275" class="LineNr">1275 </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="L1276" class="Folded">1276 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1276" class="Folded">1276 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1302" class="LineNr">1302 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "3/imm32 61/a 22 62/b ", msg)</span> <span id="L1303" class="LineNr">1303 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1304" class="LineNr">1304 </span> 68/push <span class="Constant">"F - test-emit-string-literal-data-handles-escape-sequences"</span>/imm32 @@ -1243,7 +1243,7 @@ if ('onhashchange' in window) { <span id="L1337" class="LineNr">1337 </span> e8/call <a href='dquotes.subx.html#L848'>emit-string-literal-data</a>/disp32 <span id="L1338" class="LineNr">1338 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1339" class="LineNr">1339 </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="L1340" class="Folded">1340 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1340" class="Folded">1340 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1366" class="LineNr">1366 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "3/imm32 61/a 0a 62/b ", msg)</span> <span id="L1367" class="LineNr">1367 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1368" class="LineNr">1368 </span> 68/push <span class="Constant">"F - test-emit-string-literal-data-handles-newline-escape"</span>/imm32 @@ -1628,7 +1628,7 @@ if ('onhashchange' in window) { <span id="L1747" class="LineNr">1747 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1748" class="LineNr">1748 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1749" class="LineNr">1749 </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="L1750" class="Folded">1750 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1750" class="Folded">1750 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1776" class="LineNr">1776 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "/ghi", msg) # important that there's no leading space</span> <span id="L1777" class="LineNr">1777 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1778" class="LineNr">1778 </span> 68/push <span class="Constant">"F - test-emit-metadata-in-string-literal"</span>/imm32 diff --git a/html/apps/mulisp.subx.html b/html/apps/mulisp.subx.html index a979613d..2013a7ed 100644 --- a/html/apps/mulisp.subx.html +++ b/html/apps/mulisp.subx.html @@ -71,12 +71,12 @@ if ('onhashchange' in window) { <span id="L14" class="LineNr"> 14 </span> <span class="subxS1Comment"># . prolog</span> <span id="L15" class="LineNr"> 15 </span> 89/<- %ebp 4/r32/esp <span id="L16" class="LineNr"> 16 </span> <span class="subxComment"># initialize heap</span> -<span id="L17" class="LineNr"> 17 </span> (new-segment <span class="SpecialChar"><a href='../069allocate.subx.html#L29'>Heap-size</a></span> <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>) +<span id="L17" class="LineNr"> 17 </span> (<a href='../053new-segment.subx.html#L41'>new-segment</a> <span class="SpecialChar"><a href='../069allocate.subx.html#L29'>Heap-size</a></span> <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>) <span id="L18" class="LineNr"> 18 </span> <span class="subxComment"># if (argc <= 1) goto run-main</span> <span id="L19" class="LineNr"> 19 </span> 81 7/subop/compare *ebp 1/imm32 <span id="L20" class="LineNr"> 20 </span> 7e/jump-if-lesser-or-equal $run-main/disp8 <span id="L21" class="LineNr"> 21 </span> <span class="subxComment"># if (argv[1] != "test")) goto run-main</span> -<span id="L22" class="LineNr"> 22 </span> (kernel-string-equal? *(ebp+8) <span class="Constant">"test"</span>) <span class="subxComment"># => eax</span> +<span id="L22" class="LineNr"> 22 </span> (<a href='../052kernel-string-equal.subx.html#L31'>kernel-string-equal?</a> *(ebp+8) <span class="Constant">"test"</span>) <span class="subxComment"># => eax</span> <span id="L23" class="LineNr"> 23 </span> 3d/compare-eax-and 0/imm32 <span id="L24" class="LineNr"> 24 </span> 74/jump-if-equal $run-main/disp8 <span id="L25" class="LineNr"> 25 </span> <span class="subxComment">#</span> @@ -85,7 +85,7 @@ if ('onhashchange' in window) { <span id="L28" class="LineNr"> 28 </span> 8b/-> *<span class="SpecialChar"><a href='../051test.subx.html#L90'>Num-test-failures</a></span> 3/r32/ebx <span id="L29" class="LineNr"> 29 </span> eb/jump $main:end/disp8 <span id="L30" class="LineNr"> 30 </span><span class="Constant">$run-main</span>: -<span id="L31" class="LineNr"> 31 </span> (repl <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>) +<span id="L31" class="LineNr"> 31 </span> (<a href='mulisp.subx.html#L76'>repl</a> <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>) <span id="L32" class="LineNr"> 32 </span> <span class="subxComment"># syscall(exit, 0)</span> <span id="L33" class="LineNr"> 33 </span> bb/copy-to-ebx 0/imm32 <span id="L34" class="LineNr"> 34 </span><span class="Constant">$main:end</span>: @@ -137,13 +137,13 @@ if ('onhashchange' in window) { <span id="L80" class="LineNr"> 80 </span> <span class="subxS1Comment"># . save registers</span> <span id="L81" class="LineNr"> 81 </span> 50/push-eax <span id="L82" class="LineNr"> 82 </span><span class="Constant">$repl:loop</span>: -<span id="L83" class="LineNr"> 83 </span> (lisp-read <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span>) <span class="subxComment"># => eax : (address cell)</span> +<span id="L83" class="LineNr"> 83 </span> (<a href='mulisp.subx.html#L106'>lisp-read</a> <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span>) <span class="subxComment"># => eax : (address cell)</span> <span id="L84" class="LineNr"> 84 </span> <span class="subxComment"># if (eax == 0) break</span> <span id="L85" class="LineNr"> 85 </span> 3d/compare-eax-and 0/imm32 <span id="L86" class="LineNr"> 86 </span> 74/jump-if-equal $repl:end/disp8 <span id="L87" class="LineNr"> 87 </span> <span class="subxComment">#</span> -<span id="L88" class="LineNr"> 88 </span> (lisp-eval %eax) <span class="subxComment"># => eax : (address cell)</span> -<span id="L89" class="LineNr"> 89 </span> (lisp-print <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span> %eax) +<span id="L88" class="LineNr"> 88 </span> (<a href='mulisp.subx.html#L195'>lisp-eval</a> %eax) <span class="subxComment"># => eax : (address cell)</span> +<span id="L89" class="LineNr"> 89 </span> (<a href='mulisp.subx.html#L208'>lisp-print</a> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span> %eax) <span id="L90" class="LineNr"> 90 </span> <span class="subxComment"># loop</span> <span id="L91" class="LineNr"> 91 </span> eb/jump $repl:<span class="Constant">loop</span>/disp8 <span id="L92" class="LineNr"> 92 </span><span class="Constant">$repl:end</span>: @@ -174,8 +174,8 @@ if ('onhashchange' in window) { <span id="L117" class="LineNr">117 </span> 89/<- %ecx 4/r32/esp <span id="L118" class="LineNr">118 </span><span class="Constant">$lisp-read:loop</span>: <span id="L119" class="LineNr">119 </span> <span class="subxComment"># read line into s</span> -<span id="L120" class="LineNr">120 </span> (clear-stream %ecx) -<span id="L121" class="LineNr">121 </span> (read-line-buffered *(ebp+8) %ecx) +<span id="L120" class="LineNr">120 </span> (<a href='../055stream.subx.html#L17'>clear-stream</a> %ecx) +<span id="L121" class="LineNr">121 </span> (<a href='../071read-line.subx.html#L9'>read-line-buffered</a> *(ebp+8) %ecx) <span id="L122" class="LineNr">122 </span> <span class="subxComment"># if (s->write == 0) return null</span> <span id="L123" class="LineNr">123 </span> 81 7/subop/compare *ecx 0/imm32 <span id="L124" class="LineNr">124 </span> 75/jump-if-not-equal $lisp-read:<span class="Constant">loop</span>/disp8 @@ -268,9 +268,9 @@ if ('onhashchange' in window) { <span id="L211" class="LineNr">211 </span> 89/<- %ebp 4/r32/esp <span id="L212" class="LineNr">212 </span> <span class="subxS1Comment"># . save registers</span> <span id="L213" class="LineNr">213 </span> <span class="subxComment"># write(x)</span> -<span id="L214" class="LineNr">214 </span> (write-buffered <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span> <span class="Constant">"=> "</span>) -<span id="L215" class="LineNr">215 </span> (write-stream-data <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span> *(ebp+0xc)) -<span id="L216" class="LineNr">216 </span> (flush <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>) +<span id="L214" class="LineNr">214 </span> (<a href='../065write-buffered.subx.html#L8'>write-buffered</a> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span> <span class="Constant">"=> "</span>) +<span id="L215" class="LineNr">215 </span> (<a href='../074write-stream-data.subx.html#L11'>write-stream-data</a> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span> *(ebp+0xc)) +<span id="L216" class="LineNr">216 </span> (<a href='../064write-byte.subx.html#L79'>flush</a> <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>) <span id="L217" class="LineNr">217 </span><span class="Constant">$lisp-print:end</span>: <span id="L218" class="LineNr">218 </span> <span class="subxS1Comment"># . restore registers</span> <span id="L219" class="LineNr">219 </span> <span class="subxS1Comment"># . epilog</span> diff --git a/html/apps/pack.subx.html b/html/apps/pack.subx.html index 86267ee6..d9c90ebc 100644 --- a/html/apps/pack.subx.html +++ b/html/apps/pack.subx.html @@ -222,7 +222,7 @@ if ('onhashchange' in window) { <span id="L160" class="LineNr"> 160 </span> <span class="subxComment"># if (line->write == 0) break</span> <span id="L161" class="LineNr"> 161 </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> <span id="L162" class="LineNr"> 162 </span> 0f 84/jump-if-equal $subx-pack:<span class="Constant">break</span>/disp32 -<span id="L163" class="Folded"> 163 </span><span class="Folded">+-- 26 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L163" class="Folded"> 163 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L189" class="LineNr"> 189 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L190" class="LineNr"> 190 </span> <span class="subxS2Comment"># . . push args</span> <span id="L191" class="LineNr"> 191 </span> 52/push-edx @@ -244,7 +244,7 @@ if ('onhashchange' in window) { <span id="L207" class="LineNr"> 207 </span> 3d/compare-eax-and 0/imm32 <span id="L208" class="LineNr"> 208 </span> 0f 85/jump-if-not-equal $subx-pack:pass-through/disp32 <span id="L209" class="LineNr"> 209 </span><span class="Constant">$subx-pack:check2</span>: -<span id="L210" class="Folded"> 210 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L210" class="Folded"> 210 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L252" class="LineNr"> 252 </span> <span class="subxComment"># if (!slice-equal?(word-slice, "==")) goto next check</span> <span id="L253" class="LineNr"> 253 </span> <span class="subxS1Comment"># . eax = slice-equal?(word-slice, "==")</span> <span id="L254" class="LineNr"> 254 </span> <span class="subxS2Comment"># . . push args</span> @@ -265,7 +265,7 @@ if ('onhashchange' in window) { <span id="L269" class="LineNr"> 269 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L270" class="LineNr"> 270 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L271" class="LineNr"> 271 </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="L272" class="Folded"> 272 </span><span class="Folded">+-- 42 lines: #? # dump segment name -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L272" class="Folded"> 272 </span><span class="Folded">+-- 42 lines: #? # dump segment name ---------------------------------------------------------------------------------------------------------------------</span> <span id="L314" class="LineNr"> 314 </span> <span class="subxComment"># in-code? = slice-equal?(word-slice, "code")</span> <span id="L315" class="LineNr"> 315 </span> <span class="subxS2Comment"># . . push args</span> <span id="L316" class="LineNr"> 316 </span> 68/push <span class="Constant">"code"</span>/imm32 @@ -642,7 +642,7 @@ if ('onhashchange' in window) { <span id="L687" class="LineNr"> 687 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L688" class="LineNr"> 688 </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="L689" class="LineNr"> 689 </span> <span class="subxComment"># check output</span> -<span id="L690" class="Folded"> 690 </span><span class="Folded">+-- 26 lines: #? # debug print -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L690" class="Folded"> 690 </span><span class="Folded">+-- 26 lines: #? # debug print ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L716" class="LineNr"> 716 </span> <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span> <span id="L717" class="LineNr"> 717 </span> <span class="subxS2Comment"># . . push args</span> <span id="L718" class="LineNr"> 718 </span> 68/push <a href='../064write-byte.subx.html#L332'>_test-output-buffered-file</a>/imm32 @@ -780,7 +780,7 @@ if ('onhashchange' in window) { <span id="L850" class="LineNr"> 850 </span> <span class="subxComment"># 68 20 # 68/push 0x20/imm8</span> <span id="L851" class="LineNr"> 851 </span> <span class="subxComment"># == data 0x2</span> <span id="L852" class="LineNr"> 852 </span> <span class="subxComment"># 03 04 00 00 00</span> -<span id="L853" class="Folded"> 853 </span><span class="Folded">+-- 26 lines: #? # debug print -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L853" class="Folded"> 853 </span><span class="Folded">+-- 26 lines: #? # debug print ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L879" class="LineNr"> 879 </span> <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span> <span id="L880" class="LineNr"> 880 </span> <span class="subxS2Comment"># . . push args</span> <span id="L881" class="LineNr"> 881 </span> 68/push <a href='../064write-byte.subx.html#L332'>_test-output-buffered-file</a>/imm32 @@ -869,7 +869,7 @@ if ('onhashchange' in window) { <span id="L964" class="LineNr"> 964 </span> 68/push 0/imm32/end <span id="L965" class="LineNr"> 965 </span> 68/push 0/imm32/start <span id="L966" class="LineNr"> 966 </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="L967" class="Folded"> 967 </span><span class="Folded">+-- 26 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L967" class="Folded"> 967 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L993" class="LineNr"> 993 </span><span class="Constant">$convert-data:loop</span>: <span id="L994" class="LineNr"> 994 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L995" class="LineNr"> 995 </span> <span class="subxS2Comment"># . . push args</span> @@ -879,7 +879,7 @@ if ('onhashchange' in window) { <span id="L999" class="LineNr"> 999 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L1000" class="LineNr">1000 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1001" class="LineNr">1001 </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="L1002" class="Folded">1002 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1002" class="Folded">1002 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L1044" class="LineNr">1044 </span><span class="Constant">$convert-data:check0</span>: <span id="L1045" class="LineNr">1045 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L1046" class="LineNr">1046 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -1044,7 +1044,7 @@ if ('onhashchange' in window) { <span id="L1205" class="LineNr">1205 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1206" class="LineNr">1206 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1207" class="LineNr">1207 </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="L1208" class="Folded">1208 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1208" class="Folded">1208 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1234" class="LineNr">1234 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "# abcd", msg)</span> <span id="L1235" class="LineNr">1235 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1236" class="LineNr">1236 </span> 68/push <span class="Constant">"F - test-convert-data-passes-comments-through"</span>/imm32 @@ -1523,7 +1523,7 @@ if ('onhashchange' in window) { <span id="L1709" class="LineNr">1709 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1710" class="LineNr">1710 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1711" class="LineNr">1711 </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="L1712" class="Folded">1712 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1712" class="Folded">1712 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1738" class="LineNr">1738 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "30 abcd/o 42 e1 00 00 \n", msg)</span> <span id="L1739" class="LineNr">1739 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1740" class="LineNr">1740 </span> 68/push <span class="Constant">"F - test-convert-data-multiple-words"</span>/imm32 @@ -1592,7 +1592,7 @@ if ('onhashchange' in window) { <span id="L1803" class="LineNr">1803 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1804" class="LineNr">1804 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1805" class="LineNr">1805 </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="L1806" class="Folded">1806 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1806" class="Folded">1806 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1832" class="LineNr">1832 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "30 00 00 00 # comment", msg)</span> <span id="L1833" class="LineNr">1833 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1834" class="LineNr">1834 </span> 68/push <span class="Constant">"F - test-convert-data-trailing-comment"</span>/imm32 @@ -2112,7 +2112,7 @@ if ('onhashchange' in window) { <span id="L2348" class="LineNr">2348 </span> e8/call <a href='../055stream.subx.html#L54'>rewind-stream</a>/disp32 <span id="L2349" class="LineNr">2349 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2350" class="LineNr">2350 </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="L2351" class="Folded">2351 </span><span class="Folded">+-- 33 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2351" class="Folded">2351 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L2384" class="LineNr">2384 </span><span class="Constant">$emit-modrm:loop</span>: <span id="L2385" class="LineNr">2385 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L2386" class="LineNr">2386 </span> <span class="subxS2Comment"># . . push args</span> @@ -2122,7 +2122,7 @@ if ('onhashchange' in window) { <span id="L2390" class="LineNr">2390 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L2391" class="LineNr">2391 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2392" class="LineNr">2392 </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="L2393" class="Folded">2393 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2393" class="Folded">2393 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L2435" class="LineNr">2435 </span><span class="Constant">$emit-modrm:check0</span>: <span id="L2436" class="LineNr">2436 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L2437" class="LineNr">2437 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -2358,7 +2358,7 @@ if ('onhashchange' in window) { <span id="L2667" class="LineNr">2667 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2668" class="LineNr">2668 </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="L2669" class="LineNr">2669 </span><span class="Constant">$emit-sib:loop</span>: -<span id="L2670" class="Folded">2670 </span><span class="Folded">+-- 26 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2670" class="Folded">2670 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L2696" class="LineNr">2696 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L2697" class="LineNr">2697 </span> <span class="subxS2Comment"># . . push args</span> <span id="L2698" class="LineNr">2698 </span> 51/push-ecx @@ -2367,7 +2367,7 @@ if ('onhashchange' in window) { <span id="L2701" class="LineNr">2701 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L2702" class="LineNr">2702 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2703" class="LineNr">2703 </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="L2704" class="Folded">2704 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2704" class="Folded">2704 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L2746" class="LineNr">2746 </span><span class="Constant">$emit-sib:check0</span>: <span id="L2747" class="LineNr">2747 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L2748" class="LineNr">2748 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -2556,7 +2556,7 @@ if ('onhashchange' in window) { <span id="L2931" class="LineNr">2931 </span> e8/call <a href='../055stream.subx.html#L54'>rewind-stream</a>/disp32 <span id="L2932" class="LineNr">2932 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2933" class="LineNr">2933 </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="L2934" class="Folded">2934 </span><span class="Folded">+-- 26 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2934" class="Folded">2934 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L2960" class="LineNr">2960 </span><span class="Constant">$emit-disp:loop</span>: <span id="L2961" class="LineNr">2961 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L2962" class="LineNr">2962 </span> <span class="subxS2Comment"># . . push args</span> @@ -2566,7 +2566,7 @@ if ('onhashchange' in window) { <span id="L2966" class="LineNr">2966 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L2967" class="LineNr">2967 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2968" class="LineNr">2968 </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="L2969" class="Folded">2969 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2969" class="Folded">2969 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L3011" class="LineNr">3011 </span><span class="Constant">$emit-disp:check0</span>: <span id="L3012" class="LineNr">3012 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L3013" class="LineNr">3013 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -2711,7 +2711,7 @@ if ('onhashchange' in window) { <span id="L3152" class="LineNr">3152 </span> e8/call <a href='../055stream.subx.html#L54'>rewind-stream</a>/disp32 <span id="L3153" class="LineNr">3153 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3154" class="LineNr">3154 </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="L3155" class="Folded">3155 </span><span class="Folded">+-- 26 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3155" class="Folded">3155 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L3181" class="LineNr">3181 </span><span class="Constant">$emit-imm:loop</span>: <span id="L3182" class="LineNr">3182 </span> <span class="subxComment"># next-word(line, word-slice)</span> <span id="L3183" class="LineNr">3183 </span> <span class="subxS2Comment"># . . push args</span> @@ -2721,7 +2721,7 @@ if ('onhashchange' in window) { <span id="L3187" class="LineNr">3187 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L3188" class="LineNr">3188 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3189" class="LineNr">3189 </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="L3190" class="Folded">3190 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3190" class="Folded">3190 </span><span class="Folded">+-- 42 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L3232" class="LineNr">3232 </span><span class="Constant">$emit-imm:check0</span>: <span id="L3233" class="LineNr">3233 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L3234" class="LineNr">3234 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -3046,7 +3046,7 @@ if ('onhashchange' in window) { <span id="L3553" class="LineNr">3553 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3554" class="LineNr">3554 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3555" class="LineNr">3555 </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="L3556" class="Folded">3556 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3556" class="Folded">3556 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3582" class="LineNr">3582 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab # ab/cd # comment", msg)</span> <span id="L3583" class="LineNr">3583 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3584" class="LineNr">3584 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-single-opcode"</span>/imm32 @@ -3115,7 +3115,7 @@ if ('onhashchange' in window) { <span id="L3647" class="LineNr">3647 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3648" class="LineNr">3648 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3649" class="LineNr">3649 </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="L3650" class="Folded">3650 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3650" class="Folded">3650 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3676" class="LineNr">3676 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "0f ab # 0f/m1 ab/m2 # comment", msg)</span> <span id="L3677" class="LineNr">3677 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3678" class="LineNr">3678 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-0f-opcode"</span>/imm32 @@ -3184,7 +3184,7 @@ if ('onhashchange' in window) { <span id="L3741" class="LineNr">3741 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3742" class="LineNr">3742 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3743" class="LineNr">3743 </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="L3744" class="Folded">3744 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3744" class="Folded">3744 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3770" class="LineNr">3770 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "f2 ab # f2/m1 ab/m2 # comment", msg)</span> <span id="L3771" class="LineNr">3771 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3772" class="LineNr">3772 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-f2-opcode"</span>/imm32 @@ -3253,7 +3253,7 @@ if ('onhashchange' in window) { <span id="L3835" class="LineNr">3835 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3836" class="LineNr">3836 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3837" class="LineNr">3837 </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="L3838" class="Folded">3838 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3838" class="Folded">3838 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3864" class="LineNr">3864 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "f3 ab # f3/m1 ab/m2 # comment", msg)</span> <span id="L3865" class="LineNr">3865 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3866" class="LineNr">3866 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-f3-opcode"</span>/imm32 @@ -3322,7 +3322,7 @@ if ('onhashchange' in window) { <span id="L3929" class="LineNr">3929 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3930" class="LineNr">3930 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3931" class="LineNr">3931 </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="L3932" class="Folded">3932 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3932" class="Folded">3932 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3958" class="LineNr">3958 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "f2 0f ab # f2/m1 0f/m2 ab/m3 # comment", msg)</span> <span id="L3959" class="LineNr">3959 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3960" class="LineNr">3960 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-f2-0f-opcode"</span>/imm32 @@ -3391,7 +3391,7 @@ if ('onhashchange' in window) { <span id="L4023" class="LineNr">4023 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4024" class="LineNr">4024 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4025" class="LineNr">4025 </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="L4026" class="Folded">4026 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4026" class="Folded">4026 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4052" class="LineNr">4052 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "f3 0f ab # f3/m1 0f/m2 ab/m3 # comment", msg)</span> <span id="L4053" class="LineNr">4053 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4054" class="LineNr">4054 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-f3-0f-opcode"</span>/imm32 @@ -3460,7 +3460,7 @@ if ('onhashchange' in window) { <span id="L4117" class="LineNr">4117 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4118" class="LineNr">4118 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4119" class="LineNr">4119 </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="L4120" class="Folded">4120 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4120" class="Folded">4120 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4146" class="LineNr">4146 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab # f3/m1 0f/m2 ab/m3 # comment", msg)</span> <span id="L4147" class="LineNr">4147 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4148" class="LineNr">4148 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-unused-opcodes"</span>/imm32 @@ -3529,7 +3529,7 @@ if ('onhashchange' in window) { <span id="L4211" class="LineNr">4211 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4212" class="LineNr">4212 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4213" class="LineNr">4213 </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="L4214" class="Folded">4214 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4214" class="Folded">4214 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4240" class="LineNr">4240 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "f2 ab # f2/m1 ab/m2 cd/m3 # comment", msg)</span> <span id="L4241" class="LineNr">4241 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4242" class="LineNr">4242 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-unused-second-opcodes"</span>/imm32 @@ -3598,7 +3598,7 @@ if ('onhashchange' in window) { <span id="L4305" class="LineNr">4305 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4306" class="LineNr">4306 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4307" class="LineNr">4307 </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="L4308" class="Folded">4308 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4308" class="Folded">4308 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4334" class="LineNr">4334 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "f3 ab # f3/m1 ab/m2 cd/m3 # comment", msg)</span> <span id="L4335" class="LineNr">4335 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4336" class="LineNr">4336 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-unused-second-opcodes"</span>/imm32 @@ -3667,7 +3667,7 @@ if ('onhashchange' in window) { <span id="L4399" class="LineNr">4399 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4400" class="LineNr">4400 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4401" class="LineNr">4401 </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="L4402" class="Folded">4402 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4402" class="Folded">4402 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4428" class="LineNr">4428 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 08 # 8b/copy 0/mod 0/rm32 1/r32", msg)</span> <span id="L4429" class="LineNr">4429 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4430" class="LineNr">4430 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-modrm-byte"</span>/imm32 @@ -3734,7 +3734,7 @@ if ('onhashchange' in window) { <span id="L4491" class="LineNr">4491 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4492" class="LineNr">4492 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4493" class="LineNr">4493 </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="L4494" class="Folded">4494 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4494" class="Folded">4494 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4520" class="LineNr">4520 </span> <span class="subxComment"># check output</span> <span id="L4521" class="LineNr">4521 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "# abcd", msg)</span> <span id="L4522" class="LineNr">4522 </span> <span class="subxS2Comment"># . . push args</span> @@ -3804,7 +3804,7 @@ if ('onhashchange' in window) { <span id="L4586" class="LineNr">4586 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4587" class="LineNr">4587 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4588" class="LineNr">4588 </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="L4589" class="Folded">4589 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4589" class="Folded">4589 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4615" class="LineNr">4615 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ff 30 # ff 6/subop/push 0/mod 0/rm32", msg)</span> <span id="L4616" class="LineNr">4616 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4617" class="LineNr">4617 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-modrm-byte-from-subop"</span>/imm32 @@ -3873,7 +3873,7 @@ if ('onhashchange' in window) { <span id="L4680" class="LineNr">4680 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4681" class="LineNr">4681 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4682" class="LineNr">4682 </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="L4683" class="Folded">4683 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4683" class="Folded">4683 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4709" class="LineNr">4709 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 08 # 8b/copy 0/rm32 1/r32", msg)</span> <span id="L4710" class="LineNr">4710 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4711" class="LineNr">4711 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-modrm-byte-with-missing-mod"</span>/imm32 @@ -3942,7 +3942,7 @@ if ('onhashchange' in window) { <span id="L4774" class="LineNr">4774 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4775" class="LineNr">4775 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4776" class="LineNr">4776 </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="L4777" class="Folded">4777 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4777" class="Folded">4777 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4803" class="LineNr">4803 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 08 # 8b/copy 0/mod 1/r32", msg)</span> <span id="L4804" class="LineNr">4804 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4805" class="LineNr">4805 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-modrm-byte-with-missing-rm32"</span>/imm32 @@ -4011,7 +4011,7 @@ if ('onhashchange' in window) { <span id="L4868" class="LineNr">4868 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4869" class="LineNr">4869 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4870" class="LineNr">4870 </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="L4871" class="Folded">4871 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4871" class="Folded">4871 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4897" class="LineNr">4897 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 00 # 8b/copy 0/mod 0/rm32", msg)</span> <span id="L4898" class="LineNr">4898 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4899" class="LineNr">4899 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-modrm-byte-with-missing-r32"</span>/imm32 @@ -4080,7 +4080,7 @@ if ('onhashchange' in window) { <span id="L4962" class="LineNr">4962 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L4963" class="LineNr">4963 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4964" class="LineNr">4964 </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="L4965" class="Folded">4965 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4965" class="Folded">4965 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L4991" class="LineNr">4991 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 08 # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale", msg)</span> <span id="L4992" class="LineNr">4992 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4993" class="LineNr">4993 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-sib-byte"</span>/imm32 @@ -4149,7 +4149,7 @@ if ('onhashchange' in window) { <span id="L5056" class="LineNr">5056 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5057" class="LineNr">5057 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5058" class="LineNr">5058 </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="L5059" class="Folded">5059 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5059" class="Folded">5059 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5085" class="LineNr">5085 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 0c 08 # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale", msg)</span> <span id="L5086" class="LineNr">5086 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5087" class="LineNr">5087 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-sib-byte-with-missing-base"</span>/imm32 @@ -4218,7 +4218,7 @@ if ('onhashchange' in window) { <span id="L5150" class="LineNr">5150 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5151" class="LineNr">5151 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5152" class="LineNr">5152 </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="L5153" class="Folded">5153 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5153" class="Folded">5153 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5179" class="LineNr">5179 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 0c 08 # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale", msg)</span> <span id="L5180" class="LineNr">5180 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5181" class="LineNr">5181 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-sib-byte-with-missing-index"</span>/imm32 @@ -4287,7 +4287,7 @@ if ('onhashchange' in window) { <span id="L5244" class="LineNr">5244 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5245" class="LineNr">5245 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5246" class="LineNr">5246 </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="L5247" class="Folded">5247 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5247" class="Folded">5247 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5273" class="LineNr">5273 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "8b 0c 08 # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index", msg)</span> <span id="L5274" class="LineNr">5274 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5275" class="LineNr">5275 </span> 68/push <span class="Constant">"F - test-convert-instruction-emits-sib-byte-with-missing-scale"</span>/imm32 @@ -4356,7 +4356,7 @@ if ('onhashchange' in window) { <span id="L5338" class="LineNr">5338 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5339" class="LineNr">5339 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5340" class="LineNr">5340 </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="L5341" class="Folded">5341 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5341" class="Folded">5341 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5367" class="LineNr">5367 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "e8 20 00 00 00 # e8/call 20/disp32", msg)</span> <span id="L5368" class="LineNr">5368 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5369" class="LineNr">5369 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-disp32-operand"</span>/imm32 @@ -4425,7 +4425,7 @@ if ('onhashchange' in window) { <span id="L5432" class="LineNr">5432 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5433" class="LineNr">5433 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5434" class="LineNr">5434 </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="L5435" class="Folded">5435 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5435" class="Folded">5435 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5461" class="LineNr">5461 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "e8 20 00 # e8/call 20/disp16", msg)</span> <span id="L5462" class="LineNr">5462 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5463" class="LineNr">5463 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-disp16-operand"</span>/imm32 @@ -4494,7 +4494,7 @@ if ('onhashchange' in window) { <span id="L5526" class="LineNr">5526 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5527" class="LineNr">5527 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5528" class="LineNr">5528 </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="L5529" class="Folded">5529 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5529" class="Folded">5529 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5555" class="LineNr">5555 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "eb 20 # eb/jump 20/disp8", msg)</span> <span id="L5556" class="LineNr">5556 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5557" class="LineNr">5557 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-disp8-operand"</span>/imm32 @@ -4563,7 +4563,7 @@ if ('onhashchange' in window) { <span id="L5620" class="LineNr">5620 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5621" class="LineNr">5621 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5622" class="LineNr">5622 </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="L5623" class="Folded">5623 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5623" class="Folded">5623 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5649" class="LineNr">5649 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "eb xyz/disp8 # eb/jump xyz/disp8", msg)</span> <span id="L5650" class="LineNr">5650 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5651" class="LineNr">5651 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-disp8-name"</span>/imm32 @@ -4632,7 +4632,7 @@ if ('onhashchange' in window) { <span id="L5714" class="LineNr">5714 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5715" class="LineNr">5715 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5716" class="LineNr">5716 </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="L5717" class="Folded">5717 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5717" class="Folded">5717 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5743" class="LineNr">5743 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "68 20 00 00 00 # 68/push 0x20/imm32", msg)</span> <span id="L5744" class="LineNr">5744 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5745" class="LineNr">5745 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-imm32-operand"</span>/imm32 @@ -4702,7 +4702,7 @@ if ('onhashchange' in window) { <span id="L5809" class="LineNr">5809 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5810" class="LineNr">5810 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5811" class="LineNr">5811 </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="L5812" class="Folded">5812 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5812" class="Folded">5812 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5838" class="LineNr">5838 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "68 20 00 # 68/push 0x20/imm16", msg)</span> <span id="L5839" class="LineNr">5839 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5840" class="LineNr">5840 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-imm16-operand"</span>/imm32 @@ -4772,7 +4772,7 @@ if ('onhashchange' in window) { <span id="L5904" class="LineNr">5904 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L5905" class="LineNr">5905 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L5906" class="LineNr">5906 </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="L5907" class="Folded">5907 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L5907" class="Folded">5907 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L5933" class="LineNr">5933 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "68 20 # 68/push 0x20/imm8", msg)</span> <span id="L5934" class="LineNr">5934 </span> <span class="subxS2Comment"># . . push args</span> <span id="L5935" class="LineNr">5935 </span> 68/push <span class="Constant">"F - test-convert-instruction-handles-imm8-operand"</span>/imm32 diff --git a/html/apps/sigils.subx.html b/html/apps/sigils.subx.html index 1449348e..101b5cf6 100644 --- a/html/apps/sigils.subx.html +++ b/html/apps/sigils.subx.html @@ -269,7 +269,7 @@ if ('onhashchange' in window) { <span id="L207" class="LineNr"> 207 </span> 3d/compare-eax-and 0x25/imm32/percent <span id="L208" class="LineNr"> 208 </span> 75/jump-if-not-equal $subx-sigils:check-for-indirect-mode/disp8 <span id="L209" class="LineNr"> 209 </span><span class="Constant">$subx-sigils:direct-mode</span>: -<span id="L210" class="Folded"> 210 </span><span class="Folded">+-- 46 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L210" class="Folded"> 210 </span><span class="Folded">+-- 46 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L256" class="LineNr"> 256 </span> <span class="subxComment"># emit-direct-mode(out, word-slice)</span> <span id="L257" class="LineNr"> 257 </span> <span class="subxS2Comment"># . . push args</span> <span id="L258" class="LineNr"> 258 </span> 52/push-edx @@ -515,7 +515,7 @@ if ('onhashchange' in window) { <span id="L498" class="LineNr"> 498 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L499" class="LineNr"> 499 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L500" class="LineNr"> 500 </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="L501" class="Folded"> 501 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L501" class="Folded"> 501 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L527" class="LineNr"> 527 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "== abcd 0x1 \n", msg)</span> <span id="L528" class="LineNr"> 528 </span> <span class="subxS2Comment"># . . push args</span> <span id="L529" class="LineNr"> 529 </span> 68/push <span class="Constant">"F - test-subx-sigils-passes-most-words-through"</span>/imm32 @@ -592,7 +592,7 @@ if ('onhashchange' in window) { <span id="L600" class="LineNr"> 600 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L601" class="LineNr"> 601 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L602" class="LineNr"> 602 </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="L603" class="Folded"> 603 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L603" class="Folded"> 603 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L629" class="LineNr"> 629 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 3/mod/direct 0x00000001/rm32 \n", msg)</span> <span id="L630" class="LineNr"> 630 </span> <span class="subxS2Comment"># . . push args</span> <span id="L631" class="LineNr"> 631 </span> 68/push <span class="Constant">"F - test-subx-sigils-direct-mode"</span>/imm32 @@ -745,7 +745,7 @@ if ('onhashchange' in window) { <span id="L778" class="LineNr"> 778 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L779" class="LineNr"> 779 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L780" class="LineNr"> 780 </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="L781" class="Folded"> 781 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L781" class="Folded"> 781 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L807" class="LineNr"> 807 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 0x00000001/rm32 \n", msg)</span> <span id="L808" class="LineNr"> 808 </span> <span class="subxS2Comment"># . . push args</span> <span id="L809" class="LineNr"> 809 </span> 68/push <span class="Constant">"F - test-subx-sigils-register-indirect-mode"</span>/imm32 @@ -898,7 +898,7 @@ if ('onhashchange' in window) { <span id="L956" class="LineNr"> 956 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L957" class="LineNr"> 957 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L958" class="LineNr"> 958 </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="L959" class="Folded"> 959 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L959" class="Folded"> 959 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L985" class="LineNr"> 985 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 1/rm32 \n", msg)</span> <span id="L986" class="LineNr"> 986 </span> <span class="subxS2Comment"># . . push args</span> <span id="L987" class="LineNr"> 987 </span> 68/push <span class="Constant">"F - test-subx-sigils-register-indirect-mode-without-displacement"</span>/imm32 @@ -975,7 +975,7 @@ if ('onhashchange' in window) { <span id="L1058" class="LineNr">1058 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1059" class="LineNr">1059 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1060" class="LineNr">1060 </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="L1061" class="Folded">1061 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1061" class="Folded">1061 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L1087" class="LineNr">1087 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 1/rm32 4/disp32 \n", msg)</span> <span id="L1088" class="LineNr">1088 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1089" class="LineNr">1089 </span> 68/push <span class="Constant">"F - test-subx-sigils-register-indirect-mode-with-displacement"</span>/imm32 @@ -1053,7 +1053,7 @@ if ('onhashchange' in window) { <span id="L1161" class="LineNr">1161 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1162" class="LineNr">1162 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1163" class="LineNr">1163 </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="L1164" class="Folded">1164 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1164" class="Folded">1164 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L1190" class="LineNr">1190 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale 4/disp32 \n", msg)</span> <span id="L1191" class="LineNr">1191 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1192" class="LineNr">1192 </span> 68/push <span class="Constant">"F - test-subx-sigils-register-indirect-mode-with-sib-byte"</span>/imm32 @@ -1130,7 +1130,7 @@ if ('onhashchange' in window) { <span id="L1263" class="LineNr">1263 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1264" class="LineNr">1264 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1265" class="LineNr">1265 </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="L1266" class="Folded">1266 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1266" class="Folded">1266 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L1292" class="LineNr">1292 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale -4/disp32 \n", msg)</span> <span id="L1293" class="LineNr">1293 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1294" class="LineNr">1294 </span> 68/push <span class="Constant">"F - test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement"</span>/imm32 @@ -1207,7 +1207,7 @@ if ('onhashchange' in window) { <span id="L1365" class="LineNr">1365 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1366" class="LineNr">1366 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1367" class="LineNr">1367 </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="L1368" class="Folded">1368 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1368" class="Folded">1368 </span><span class="Folded">+-- 26 lines: #? # dump _test-output-stream --------------------------------------------------------------------------------------------------------------</span> <span id="L1394" class="LineNr">1394 </span> <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n", msg)</span> <span id="L1395" class="LineNr">1395 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1396" class="LineNr">1396 </span> 68/push <span class="Constant">"F - test-subx-sigils-indirect-mode-without-register"</span>/imm32 @@ -1335,7 +1335,7 @@ if ('onhashchange' in window) { <span id="L1518" class="LineNr">1518 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1519" class="LineNr">1519 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1520" class="LineNr">1520 </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="L1521" class="Folded">1521 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1521" class="Folded">1521 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1547" class="LineNr">1547 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "3/mod/direct 0/rm32", msg)</span> <span id="L1548" class="LineNr">1548 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1549" class="LineNr">1549 </span> 68/push <span class="Constant">"F - <a href='sigils.subx.html#L1476'>test-emit-direct-mode</a>/0"</span>/imm32 @@ -1395,7 +1395,7 @@ if ('onhashchange' in window) { <span id="L1603" class="LineNr">1603 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L1604" class="LineNr">1604 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1605" class="LineNr">1605 </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="L1606" class="Folded">1606 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1606" class="Folded">1606 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L1632" class="LineNr">1632 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "3/mod/direct 7/rm32", msg)</span> <span id="L1633" class="LineNr">1633 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1634" class="LineNr">1634 </span> 68/push <span class="Constant">"F - <a href='sigils.subx.html#L1476'>test-emit-direct-mode</a>/1"</span>/imm32 @@ -3175,7 +3175,7 @@ if ('onhashchange' in window) { <span id="L3408" class="LineNr">3408 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3409" class="LineNr">3409 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3410" class="LineNr">3410 </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="L3411" class="Folded">3411 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3411" class="Folded">3411 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3437" class="LineNr">3437 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "0/mod/indirect 0/rm32", msg)</span> <span id="L3438" class="LineNr">3438 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3439" class="LineNr">3439 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode"</span>/imm32 @@ -3229,7 +3229,7 @@ if ('onhashchange' in window) { <span id="L3487" class="LineNr">3487 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3488" class="LineNr">3488 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3489" class="LineNr">3489 </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="L3490" class="Folded">3490 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3490" class="Folded">3490 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3516" class="LineNr">3516 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "0/mod/indirect 7/rm32", msg)</span> <span id="L3517" class="LineNr">3517 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3518" class="LineNr">3518 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode-2"</span>/imm32 @@ -3283,7 +3283,7 @@ if ('onhashchange' in window) { <span id="L3566" class="LineNr">3566 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3567" class="LineNr">3567 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3568" class="LineNr">3568 </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="L3569" class="Folded">3569 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3569" class="Folded">3569 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3595" class="LineNr">3595 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "2/mod/*+disp32 6/rm32 4/disp32", msg)</span> <span id="L3596" class="LineNr">3596 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3597" class="LineNr">3597 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode-with-disp"</span>/imm32 @@ -3337,7 +3337,7 @@ if ('onhashchange' in window) { <span id="L3645" class="LineNr">3645 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3646" class="LineNr">3646 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3647" class="LineNr">3647 </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="L3648" class="Folded">3648 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3648" class="Folded">3648 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3674" class="LineNr">3674 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "2/mod/*+disp32 6/rm32 -4/disp32", msg)</span> <span id="L3675" class="LineNr">3675 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3676" class="LineNr">3676 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode-with-disp"</span>/imm32 @@ -3391,7 +3391,7 @@ if ('onhashchange' in window) { <span id="L3724" class="LineNr">3724 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3725" class="LineNr">3725 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3726" class="LineNr">3726 </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="L3727" class="Folded">3727 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3727" class="Folded">3727 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3753" class="LineNr">3753 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "2/mod/indirect 4/rm32/sib 6/base 1/index 2/scale 4/disp", msg)</span> <span id="L3754" class="LineNr">3754 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3755" class="LineNr">3755 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode-with-sib"</span>/imm32 @@ -3445,7 +3445,7 @@ if ('onhashchange' in window) { <span id="L3803" class="LineNr">3803 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3804" class="LineNr">3804 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3805" class="LineNr">3805 </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="L3806" class="Folded">3806 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3806" class="Folded">3806 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3832" class="LineNr">3832 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "2/mod/*+disp32 4/rm32/sib 5/base/ebp 0/index 0/scale 0/disp32", msg)</span> <span id="L3833" class="LineNr">3833 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3834" class="LineNr">3834 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode-ebp"</span>/imm32 @@ -3499,7 +3499,7 @@ if ('onhashchange' in window) { <span id="L3882" class="LineNr">3882 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3883" class="LineNr">3883 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3884" class="LineNr">3884 </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="L3885" class="Folded">3885 </span><span class="Folded">+-- 26 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3885" class="Folded">3885 </span><span class="Folded">+-- 26 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3911" class="LineNr">3911 </span> <span class="subxComment"># check-stream-equal(_test-output-stream, "2/mod/*+disp32 4/rm32/sib 4/base/ebp 0/index 0/scale 0/disp32", msg)</span> <span id="L3912" class="LineNr">3912 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3913" class="LineNr">3913 </span> 68/push <span class="Constant">"F - test-emit-indirect-mode-esp"</span>/imm32 diff --git a/html/apps/survey.subx.html b/html/apps/survey.subx.html index 9a6b30d1..b9dfa341 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">+-- 47 lines: #? # dump labels->write ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L207" class="Folded"> 207 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "slurp in\n") -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L160" class="Folded"> 160 </span><span class="Folded">+-- 47 lines: #? # dump labels->write --------------------------------------------------------------------------------------------------------------------</span> +<span id="L207" class="Folded"> 207 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "slurp in\n") ---------------------------------------------------------------------------------------------------------</span> <span id="L216" class="LineNr"> 216 </span> <span class="subxComment"># slurp(infile, in)</span> <span id="L217" class="LineNr"> 217 </span> <span class="subxS2Comment"># . . push args</span> <span id="L218" class="LineNr"> 218 </span> 56/push-esi @@ -230,9 +230,9 @@ if ('onhashchange' in window) { <span id="L221" class="LineNr"> 221 </span> e8/call <a href='../082slurp.subx.html#L8'>slurp</a>/disp32 <span id="L222" class="LineNr"> 222 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L223" class="LineNr"> 223 </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="L224" class="Folded"> 224 </span><span class="Folded">+-- 46 lines: #? # dump labels->write ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L270" class="Folded"> 270 </span><span class="Folded">+-- 33 lines: #? # dump in ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L303" class="Folded"> 303 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-offsets\n") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L224" class="Folded"> 224 </span><span class="Folded">+-- 46 lines: #? # dump labels->write --------------------------------------------------------------------------------------------------------------------</span> +<span id="L270" class="Folded"> 270 </span><span class="Folded">+-- 33 lines: #? # dump in -------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L303" class="Folded"> 303 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-offsets\n") --------------------------------------------------------------------------------------------------</span> <span id="L312" class="LineNr"> 312 </span> <span class="subxComment"># compute-offsets(in, segments, labels)</span> <span id="L313" class="LineNr"> 313 </span> <span class="subxS2Comment"># . . push args</span> <span id="L314" class="LineNr"> 314 </span> 52/push-edx @@ -242,7 +242,7 @@ if ('onhashchange' in window) { <span id="L318" class="LineNr"> 318 </span> e8/call <a href='survey.subx.html#L643'>compute-offsets</a>/disp32 <span id="L319" class="LineNr"> 319 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L320" class="LineNr"> 320 </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="L321" class="Folded"> 321 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-addresses\n") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L321" class="Folded"> 321 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "compute-addresses\n") ------------------------------------------------------------------------------------------------</span> <span id="L330" class="LineNr"> 330 </span> <span class="subxComment"># compute-addresses(segments, labels)</span> <span id="L331" class="LineNr"> 331 </span> <span class="subxS2Comment"># . . push args</span> <span id="L332" class="LineNr"> 332 </span> 52/push-edx @@ -258,9 +258,9 @@ if ('onhashchange' in window) { <span id="L342" class="LineNr"> 342 </span> e8/call <a href='../055stream.subx.html#L54'>rewind-stream</a>/disp32 <span id="L343" class="LineNr"> 343 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L344" class="LineNr"> 344 </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="L345" class="Folded"> 345 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-output\n") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L354" class="Folded"> 354 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L380" class="Folded"> 380 </span><span class="Folded">+-- 46 lines: #? # dump labels->write ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L345" class="Folded"> 345 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-output\n") ------------------------------------------------------------------------------------------------------</span> +<span id="L354" class="Folded"> 354 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> +<span id="L380" class="Folded"> 380 </span><span class="Folded">+-- 46 lines: #? # dump labels->write --------------------------------------------------------------------------------------------------------------------</span> <span id="L426" class="LineNr"> 426 </span> <span class="subxComment"># emit-output(in, out, segments, labels)</span> <span id="L427" class="LineNr"> 427 </span> <span class="subxS2Comment"># . . push args</span> <span id="L428" class="LineNr"> 428 </span> 52/push-edx @@ -399,7 +399,7 @@ if ('onhashchange' in window) { <span id="L561" class="LineNr"> 561 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L562" class="LineNr"> 562 </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="L563" class="LineNr"> 563 </span> <span class="subxComment"># check trace</span> -<span id="L564" class="Folded"> 564 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L564" class="Folded"> 564 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L590" class="LineNr"> 590 </span> <span class="subxS1Comment"># . check-trace-contains("label 'x' is at address 0x00001079.", msg)</span> <span id="L591" class="LineNr"> 591 </span> <span class="subxS2Comment"># . . push args</span> <span id="L592" class="LineNr"> 592 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L455'>test-subx-survey-computes-addresses</a>/0"</span>/imm32 @@ -551,7 +551,7 @@ if ('onhashchange' in window) { <span id="L738" class="LineNr"> 738 </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="L739" class="LineNr"> 739 </span> 3d/compare-eax-and 0/imm32 <span id="L740" class="LineNr"> 740 </span> 0f 84/jump-if-equal $compute-offsets:break-line-loop/disp32 -<span id="L741" class="Folded"> 741 </span><span class="Folded">+-- 33 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L741" class="Folded"> 741 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L774" class="LineNr"> 774 </span><span class="Constant">$compute-offsets:word-loop</span>: <span id="L775" class="LineNr"> 775 </span> <span class="subxComment"># edx = word-slice</span> <span id="L776" class="LineNr"> 776 </span> ba/copy-to-edx <a href='survey.subx.html#L643'>compute-offsets</a>:word-slice/imm32 @@ -561,7 +561,7 @@ if ('onhashchange' in window) { <span id="L780" class="LineNr"> 780 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L781" class="LineNr"> 781 </span> <span class="subxS1Comment"># . discard args</span> <span id="L782" class="LineNr"> 782 </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="L783" class="Folded"> 783 </span><span class="Folded">+-- 80 lines: #? # dump word-slice and maybe curr-segment-name ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L783" class="Folded"> 783 </span><span class="Folded">+-- 80 lines: #? # dump word-slice and maybe curr-segment-name -------------------------------------------------------------------------------------------</span> <span id="L863" class="LineNr"> 863 </span><span class="Constant">$compute-offsets:case-empty</span>: <span id="L864" class="LineNr"> 864 </span> <span class="subxComment"># if slice-empty?(word/edx) break</span> <span id="L865" class="LineNr"> 865 </span> <span class="subxS1Comment"># . eax = slice-empty?(word/edx)</span> @@ -636,7 +636,7 @@ if ('onhashchange' in window) { <span id="L934" class="LineNr"> 934 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L935" class="LineNr"> 935 </span> <span class="subxS1Comment"># . discard args</span> <span id="L936" class="LineNr"> 936 </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="L937" class="Folded"> 937 </span><span class="Folded">+-- 47 lines: #? # dump curr-segment-name if not null (clobbering eax) -------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L937" class="Folded"> 937 </span><span class="Folded">+-- 47 lines: #? # dump curr-segment-name if not null (clobbering eax) -----------------------------------------------------------------------------------</span> <span id="L984" class="LineNr"> 984 </span><span class="Constant">$compute-offsets:update-curr-segment-name</span>: <span id="L985" class="LineNr"> 985 </span> <span class="subxComment"># curr-segment-name = slice-to-string(segment-tmp)</span> <span id="L986" class="LineNr"> 986 </span> <span class="subxS1Comment"># . eax = slice-to-string(Heap, segment-tmp)</span> @@ -776,7 +776,7 @@ if ('onhashchange' in window) { <span id="L1120" class="LineNr">1120 </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#L643'>compute-offsets</a>:segment-offset/disp32 <span class="subxComment"># add eax to *segment-offset</span> <span id="L1121" class="LineNr">1121 </span> <span class="subxComment"># file-offset += width</span> <span id="L1122" class="LineNr">1122 </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#L643'>compute-offsets</a>:file-offset/disp32 <span class="subxComment"># add eax to *file-offset</span> -<span id="L1123" class="Folded">1123 </span><span class="Folded">+-- 47 lines: #? # dump segment-offset ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1123" class="Folded">1123 </span><span class="Folded">+-- 47 lines: #? # dump segment-offset -------------------------------------------------------------------------------------------------------------------</span> <span id="L1170" class="LineNr">1170 </span> e9/jump $compute-offsets:word-loop/disp32 <span id="L1171" class="LineNr">1171 </span><span class="Constant">$compute-offsets:break-line-loop</span>: <span id="L1172" class="LineNr">1172 </span> <span class="subxComment"># seg/eax = get-or-insert(segments, curr-segment-name, row-size=16)</span> @@ -940,7 +940,7 @@ if ('onhashchange' in window) { <span id="L1330" class="LineNr">1330 </span> e8/call <a href='survey.subx.html#L643'>compute-offsets</a>/disp32 <span id="L1331" class="LineNr">1331 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1332" class="LineNr">1332 </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="L1333" class="Folded">1333 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1333" class="Folded">1333 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L1359" class="LineNr">1359 </span> <span class="subxComment"># check trace</span> <span id="L1360" class="LineNr">1360 </span> <span class="subxS1Comment"># . check-trace-contains("segment 'code' is at file offset 0x00000000.", msg)</span> <span id="L1361" class="LineNr">1361 </span> <span class="subxS2Comment"># . . push args</span> @@ -1085,7 +1085,7 @@ if ('onhashchange' in window) { <span id="L1500" class="LineNr">1500 </span> 05/add-to-eax 0x10/imm32 <span id="L1501" class="LineNr">1501 </span> eb/jump $compute-addresses:segment-loop/disp8 <span id="L1502" class="LineNr">1502 </span><span class="Constant">$compute-addresses:segment-break</span>: -<span id="L1503" class="Folded">1503 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1503" class="Folded">1503 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L1529" class="LineNr">1529 </span> <span class="subxComment"># esi = labels</span> <span id="L1530" class="LineNr">1530 </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="L1531" class="LineNr">1531 </span> <span class="subxComment"># lrow/eax = labels->data</span> @@ -1097,10 +1097,10 @@ if ('onhashchange' in window) { <span id="L1537" class="LineNr">1537 </span> <span class="subxComment"># if (lrow >= max) break</span> <span id="L1538" class="LineNr">1538 </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="L1539" class="LineNr">1539 </span> 0f 83/jump-if-greater-or-equal-unsigned $compute-addresses:end/disp32 -<span id="L1540" class="Folded">1540 </span><span class="Folded">+-- 26 lines: #? # dump lrow->key --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1540" class="Folded">1540 </span><span class="Folded">+-- 26 lines: #? # dump lrow->key ------------------------------------------------------------------------------------------------------------------------</span> <span id="L1566" class="LineNr">1566 </span> <span class="subxComment"># seg-name/edx = lrow->segment-name</span> <span id="L1567" class="LineNr">1567 </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="L1568" class="Folded">1568 </span><span class="Folded">+-- 26 lines: #? # dump seg-name ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1568" class="Folded">1568 </span><span class="Folded">+-- 26 lines: #? # dump seg-name -------------------------------------------------------------------------------------------------------------------------</span> <span id="L1594" class="LineNr">1594 </span> <span class="subxComment"># label-seg/edx : (address segment-info) = get(segments, seg-name, row-size=16, "segment table")</span> <span id="L1595" class="LineNr">1595 </span> <span class="subxS1Comment"># . save eax</span> <span id="L1596" class="LineNr">1596 </span> 50/push-eax @@ -1244,7 +1244,7 @@ if ('onhashchange' in window) { <span id="L1734" class="LineNr">1734 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1735" class="LineNr">1735 </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="L1736" class="LineNr">1736 </span> <span class="subxComment"># checks</span> -<span id="L1737" class="Folded">1737 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1737" class="Folded">1737 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L1763" class="LineNr">1763 </span> <span class="subxS1Comment"># . check-trace-contains("segment 'a' starts at address 0x00001094.", msg)</span> <span id="L1764" class="LineNr">1764 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1765" class="LineNr">1765 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L1644'>test-compute-addresses</a>/0"</span>/imm32 @@ -1405,7 +1405,7 @@ if ('onhashchange' in window) { <span id="L1920" class="LineNr">1920 </span> <span class="subxS1Comment"># . prolog</span> <span id="L1921" class="LineNr">1921 </span> 55/push-ebp <span id="L1922" class="LineNr">1922 </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="L1923" class="Folded">1923 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-headers\n") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1923" class="Folded">1923 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-headers\n") -----------------------------------------------------------------------------------------------------</span> <span id="L1932" class="LineNr">1932 </span> <span class="subxComment"># emit-headers(out, segments, labels)</span> <span id="L1933" class="LineNr">1933 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1934" class="LineNr">1934 </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> @@ -1415,7 +1415,7 @@ if ('onhashchange' in window) { <span id="L1938" class="LineNr">1938 </span> e8/call <a href='survey.subx.html#L3223'>emit-headers</a>/disp32 <span id="L1939" class="LineNr">1939 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1940" class="LineNr">1940 </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="L1941" class="Folded">1941 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segments\n") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L1941" class="Folded">1941 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segments\n") ----------------------------------------------------------------------------------------------------</span> <span id="L1950" class="LineNr">1950 </span> <span class="subxComment"># emit-segments(in, out, segments, labels)</span> <span id="L1951" class="LineNr">1951 </span> <span class="subxS2Comment"># . . push args</span> <span id="L1952" class="LineNr">1952 </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> @@ -1529,7 +1529,7 @@ if ('onhashchange' in window) { <span id="L2060" class="LineNr">2060 </span> e8/call <a href='../071read-line.subx.html#L223'>read-line</a>/disp32 <span id="L2061" class="LineNr">2061 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2062" class="LineNr">2062 </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="L2063" class="Folded">2063 </span><span class="Folded">+-- 33 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2063" class="Folded">2063 </span><span class="Folded">+-- 33 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L2096" class="LineNr">2096 </span><span class="Constant">$emit-segments:check-for-end-of-input</span>: <span id="L2097" class="LineNr">2097 </span> <span class="subxComment"># if (line->write == 0) break</span> <span id="L2098" class="LineNr">2098 </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> @@ -1553,7 +1553,7 @@ if ('onhashchange' in window) { <span id="L2116" class="LineNr">2116 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L2117" class="LineNr">2117 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2118" class="LineNr">2118 </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="L2119" class="Folded">2119 </span><span class="Folded">+-- 33 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2119" class="Folded">2119 </span><span class="Folded">+-- 33 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L2152" class="LineNr">2152 </span><span class="Constant">$emit-segments:check-for-end-of-line</span>: <span id="L2153" class="LineNr">2153 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L2154" class="LineNr">2154 </span> <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span> @@ -1639,7 +1639,7 @@ if ('onhashchange' in window) { <span id="L2234" class="LineNr">2234 </span> e8/call <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32 <span id="L2235" class="LineNr">2235 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2236" class="LineNr">2236 </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="L2237" class="Folded">2237 </span><span class="Folded">+-- 33 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2237" class="Folded">2237 </span><span class="Folded">+-- 33 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L2270" class="LineNr">2270 </span> <span class="subxComment"># info/esi = get-slice(labels, datum, row-size=16, "label table")</span> <span id="L2271" class="LineNr">2271 </span> <span class="subxS1Comment"># . eax = get-slice(labels, datum, row-size=16, "label table")</span> <span id="L2272" class="LineNr">2272 </span> <span class="subxS2Comment"># . . push args</span> @@ -1654,7 +1654,7 @@ if ('onhashchange' in window) { <span id="L2281" class="LineNr">2281 </span> <span class="subxS1Comment"># . esi = eax</span> <span id="L2282" class="LineNr">2282 </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="L2283" class="LineNr">2283 </span><span class="Constant">$emit-segments:check-global-variable</span>: -<span id="L2284" class="Folded">2284 </span><span class="Folded">+-- 26 lines: #? # dump info->segment-name -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2284" class="Folded">2284 </span><span class="Folded">+-- 26 lines: #? # dump info->segment-name ---------------------------------------------------------------------------------------------------------------</span> <span id="L2310" class="LineNr">2310 </span> <span class="subxComment"># if string-equal?(info->segment-name, "code") goto code label checks</span> <span id="L2311" class="LineNr">2311 </span> <span class="subxS1Comment"># . eax = string-equal?(info->segment-name, "code")</span> <span id="L2312" class="LineNr">2312 </span> <span class="subxS2Comment"># . . push args</span> @@ -1731,7 +1731,7 @@ if ('onhashchange' in window) { <span id="L2383" class="LineNr">2383 </span> <span class="subxS1Comment"># . if (eax == 0) goto next check</span> <span id="L2384" class="LineNr">2384 </span> 3d/compare-eax-and 0/imm32 <span id="L2385" class="LineNr">2385 </span> 74/jump-if-equal $emit-segments:check-code-label-for-disp8/disp8 -<span id="L2386" class="Folded">2386 </span><span class="Folded">+-- 33 lines: #? # dump info->address ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2386" class="Folded">2386 </span><span class="Folded">+-- 33 lines: #? # dump info->address --------------------------------------------------------------------------------------------------------------------</span> <span id="L2419" class="LineNr">2419 </span><span class="Constant">$emit-segments:emit-code-label-imm32</span>: <span id="L2420" class="LineNr">2420 </span> <span class="subxComment"># emit-hex(out, info->address, 4)</span> <span id="L2421" class="LineNr">2421 </span> <span class="subxS2Comment"># . . push args</span> @@ -2054,7 +2054,7 @@ if ('onhashchange' in window) { <span id="L2738" class="LineNr">2738 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L2739" class="LineNr">2739 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2740" class="LineNr">2740 </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="L2741" class="Folded">2741 </span><span class="Folded">+-- 33 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2741" class="Folded">2741 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L2774" class="LineNr">2774 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ab cd ef gh ", msg)</span> <span id="L2775" class="LineNr">2775 </span> <span class="subxS2Comment"># . . push args</span> <span id="L2776" class="LineNr">2776 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L2572'>test-emit-segments-global-variable</a>/0"</span>/imm32 @@ -2235,7 +2235,7 @@ if ('onhashchange' in window) { <span id="L2951" class="LineNr">2951 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L2952" class="LineNr">2952 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L2953" class="LineNr">2953 </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="L2954" class="Folded">2954 </span><span class="Folded">+-- 33 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L2954" class="Folded">2954 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L2987" class="LineNr">2987 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)</span> <span id="L2988" class="LineNr">2988 </span> <span class="subxS2Comment"># . . push args</span> <span id="L2989" class="LineNr">2989 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L2815'>test-emit-segments-code-label</a>/0"</span>/imm32 @@ -2407,7 +2407,7 @@ if ('onhashchange' in window) { <span id="L3155" class="LineNr">3155 </span> e8/call <a href='../064write-byte.subx.html#L79'>flush</a>/disp32 <span id="L3156" class="LineNr">3156 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3157" class="LineNr">3157 </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="L3158" class="Folded">3158 </span><span class="Folded">+-- 33 lines: #? # dump output -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3158" class="Folded">3158 </span><span class="Folded">+-- 33 lines: #? # dump output ---------------------------------------------------------------------------------------------------------------------------</span> <span id="L3191" class="LineNr">3191 </span> <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)</span> <span id="L3192" class="LineNr">3192 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3193" class="LineNr">3193 </span> 68/push <span class="Constant">"F - <a href='survey.subx.html#L3019'>test-emit-segments-code-label-absolute</a>/0"</span>/imm32 @@ -2456,7 +2456,7 @@ if ('onhashchange' in window) { <span id="L3236" class="LineNr">3236 </span> <span class="subxS1Comment"># . save registers</span> <span id="L3237" class="LineNr">3237 </span> 50/push-eax <span id="L3238" class="LineNr">3238 </span> 51/push-ecx -<span id="L3239" class="Folded">3239 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-elf-header\n") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3239" class="Folded">3239 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-elf-header\n") --------------------------------------------------------------------------------------------------</span> <span id="L3248" class="LineNr">3248 </span> <span class="subxComment"># emit-elf-header(out, segments, labels)</span> <span id="L3249" class="LineNr">3249 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3250" class="LineNr">3250 </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> @@ -2478,8 +2478,8 @@ if ('onhashchange' in window) { <span id="L3266" class="LineNr">3266 </span> <span class="subxComment"># if (curr-segment >= max) break</span> <span id="L3267" class="LineNr">3267 </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="L3268" class="LineNr">3268 </span> 0f 83/jump-if-greater-or-equal-unsigned $emit-headers:end/disp32 -<span id="L3269" class="Folded">3269 </span><span class="Folded">+-- 69 lines: #? # dump curr-segment->name -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L3338" class="Folded">3338 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segment-header\n") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3269" class="Folded">3269 </span><span class="Folded">+-- 69 lines: #? # dump curr-segment->name ---------------------------------------------------------------------------------------------------------------</span> +<span id="L3338" class="Folded">3338 </span><span class="Folded">+-- 9 lines: #? # write(2/stderr, "emit-segment-header\n") ----------------------------------------------------------------------------------------------</span> <span id="L3347" class="LineNr">3347 </span> <span class="subxComment"># emit-elf-program-header-entry(out, curr-segment)</span> <span id="L3348" class="LineNr">3348 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3349" class="LineNr">3349 </span> 50/push-eax @@ -2811,7 +2811,7 @@ if ('onhashchange' in window) { <span id="L3675" class="LineNr">3675 </span> e8/call <a href='survey.subx.html#L3610'>trace-sssns</a>/disp32 <span id="L3676" class="LineNr">3676 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3677" class="LineNr">3677 </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="L3678" class="Folded">3678 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3678" class="Folded">3678 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L3704" class="LineNr">3704 </span> <span class="subxComment"># check-trace-contains("Abc 0x00000003 e")</span> <span id="L3705" class="LineNr">3705 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3706" class="LineNr">3706 </span> 68/push <span class="Constant">"F - test-trace-sssns"</span>/imm32 @@ -2893,7 +2893,7 @@ if ('onhashchange' in window) { <span id="L3782" class="LineNr">3782 </span> e8/call <a href='survey.subx.html#L3717'>trace-snsns</a>/disp32 <span id="L3783" class="LineNr">3783 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3784" class="LineNr">3784 </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="L3785" class="Folded">3785 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3785" class="Folded">3785 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L3811" class="LineNr">3811 </span> <span class="subxComment"># check-trace-contains("Abc 0x00000003 e")</span> <span id="L3812" class="LineNr">3812 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3813" class="LineNr">3813 </span> 68/push <span class="Constant">"F - test-trace-snsns"</span>/imm32 @@ -2993,7 +2993,7 @@ if ('onhashchange' in window) { <span id="L3907" class="LineNr">3907 </span> e8/call <a href='survey.subx.html#L3824'>trace-slsls</a>/disp32 <span id="L3908" class="LineNr">3908 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L3909" class="LineNr">3909 </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="L3910" class="Folded">3910 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L3910" class="Folded">3910 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L3936" class="LineNr">3936 </span> <span class="subxComment"># check-trace-contains("Abcde")</span> <span id="L3937" class="LineNr">3937 </span> <span class="subxS2Comment"># . . push args</span> <span id="L3938" class="LineNr">3938 </span> 68/push <span class="Constant">"F - test-trace-slsls"</span>/imm32 @@ -3084,7 +3084,7 @@ if ('onhashchange' in window) { <span id="L4023" class="LineNr">4023 </span> e8/call <a href='survey.subx.html#L3949'>trace-slsns</a>/disp32 <span id="L4024" class="LineNr">4024 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4025" class="LineNr">4025 </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="L4026" class="Folded">4026 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4026" class="Folded">4026 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L4052" class="LineNr">4052 </span> <span class="subxComment"># check-trace-contains("Abc 0x00000003 e")</span> <span id="L4053" class="LineNr">4053 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4054" class="LineNr">4054 </span> 68/push <span class="Constant">"F - test-trace-slsls"</span>/imm32 @@ -3175,7 +3175,7 @@ if ('onhashchange' in window) { <span id="L4139" class="LineNr">4139 </span> e8/call <a href='survey.subx.html#L4065'>trace-slsss</a>/disp32 <span id="L4140" class="LineNr">4140 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4141" class="LineNr">4141 </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="L4142" class="Folded">4142 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4142" class="Folded">4142 </span><span class="Folded">+-- 26 lines: #? # dump *Trace-stream --------------------------------------------------------------------------------------------------------------------</span> <span id="L4168" class="LineNr">4168 </span> <span class="subxComment"># check-trace-contains("Abcde")</span> <span id="L4169" class="LineNr">4169 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4170" class="LineNr">4170 </span> 68/push <span class="Constant">"F - test-trace-slsss"</span>/imm32 @@ -3218,7 +3218,7 @@ if ('onhashchange' in window) { <span id="L4207" class="LineNr">4207 </span> 68/push 0/imm32/end <span id="L4208" class="LineNr">4208 </span> 68/push 0/imm32/start <span id="L4209" class="LineNr">4209 </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="L4210" class="Folded">4210 </span><span class="Folded">+-- 26 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4210" class="Folded">4210 </span><span class="Folded">+-- 26 lines: #? # dump line -----------------------------------------------------------------------------------------------------------------------------</span> <span id="L4236" class="LineNr">4236 </span> <span class="subxS1Comment"># . rewind-stream(line)</span> <span id="L4237" class="LineNr">4237 </span> <span class="subxS2Comment"># . . push args</span> <span id="L4238" class="LineNr">4238 </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> @@ -3235,7 +3235,7 @@ if ('onhashchange' in window) { <span id="L4249" class="LineNr">4249 </span> e8/call <a href='../076next-word.subx.html#L10'>next-word</a>/disp32 <span id="L4250" class="LineNr">4250 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L4251" class="LineNr">4251 </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="L4252" class="Folded">4252 </span><span class="Folded">+-- 46 lines: #? # dump word-slice -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</span> +<span id="L4252" class="Folded">4252 </span><span class="Folded">+-- 46 lines: #? # dump word-slice -----------------------------------------------------------------------------------------------------------------------</span> <span id="L4298" class="LineNr">4298 </span><span class="Constant">$num-bytes:check0</span>: <span id="L4299" class="LineNr">4299 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> <span id="L4300" class="LineNr">4300 </span> <span class="subxS1Comment"># . save result</span> |