diff options
author | Kartik Agaram <vc@akkartik.com> | 2021-05-18 13:01:59 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2021-05-18 13:04:33 -0700 |
commit | 5396e24cba8390ca2d70d99c7e8772eee4ec3a11 (patch) | |
tree | b266edbb6c21db7904370d082a7966783fb9e9d4 /html/linux/braces.subx.html | |
parent | b4c0b12542c1f1a1e141ed0c8db2f6165af06e0f (diff) | |
download | mu-5396e24cba8390ca2d70d99c7e8772eee4ec3a11.tar.gz |
.
Diffstat (limited to 'html/linux/braces.subx.html')
-rw-r--r-- | html/linux/braces.subx.html | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/html/linux/braces.subx.html b/html/linux/braces.subx.html index 77774273..982a1604 100644 --- a/html/linux/braces.subx.html +++ b/html/linux/braces.subx.html @@ -70,10 +70,10 @@ if ('onhashchange' in window) { <span id="L11" class="LineNr"> 11 </span><span class="subxComment"># 74/jump-if-= loop/disp8</span> <span id="L12" class="LineNr"> 12 </span><span class="subxComment"># }</span> <span id="L13" class="LineNr"> 13 </span><span class="subxComment"># $ cat x.subx |braces</span> -<span id="L14" class="LineNr"> 14 </span><span class="subxComment"># _loop1:</span> -<span id="L15" class="LineNr"> 15 </span><span class="subxComment"># 7c/jump-if-< _break1/disp8</span> -<span id="L16" class="LineNr"> 16 </span><span class="subxComment"># 74/jump-if-= _loop1/disp8</span> -<span id="L17" class="LineNr"> 17 </span><span class="subxComment"># _break1:</span> +<span id="L14" class="LineNr"> 14 </span><span class="subxComment"># @loop1:</span> +<span id="L15" class="LineNr"> 15 </span><span class="subxComment"># 7c/jump-if-< @break1/disp8</span> +<span id="L16" class="LineNr"> 16 </span><span class="subxComment"># 74/jump-if-= @loop1/disp8</span> +<span id="L17" class="LineNr"> 17 </span><span class="subxComment"># @break1:</span> <span id="L18" class="LineNr"> 18 </span><span class="subxComment">#</span> <span id="L19" class="LineNr"> 19 </span><span class="subxComment"># Example 2:</span> <span id="L20" class="LineNr"> 20 </span><span class="subxComment"># $ cat x.subx</span> @@ -84,12 +84,12 @@ if ('onhashchange' in window) { <span id="L25" class="LineNr"> 25 </span><span class="subxComment"># 74/jump-if-= loop/disp8</span> <span id="L26" class="LineNr"> 26 </span><span class="subxComment"># }</span> <span id="L27" class="LineNr"> 27 </span><span class="subxComment"># $ cat x.subx |braces</span> -<span id="L28" class="LineNr"> 28 </span><span class="subxComment"># _loop1:</span> -<span id="L29" class="LineNr"> 29 </span><span class="subxComment"># 7c/jump-if-< _break1/disp8</span> -<span id="L30" class="LineNr"> 30 </span><span class="subxComment"># _break1:</span> -<span id="L31" class="LineNr"> 31 </span><span class="subxComment"># _loop2:</span> -<span id="L32" class="LineNr"> 32 </span><span class="subxComment"># 74/jump-if-= _loop2/disp8</span> -<span id="L33" class="LineNr"> 33 </span><span class="subxComment"># _break2:</span> +<span id="L28" class="LineNr"> 28 </span><span class="subxComment"># @loop1:</span> +<span id="L29" class="LineNr"> 29 </span><span class="subxComment"># 7c/jump-if-< @break1/disp8</span> +<span id="L30" class="LineNr"> 30 </span><span class="subxComment"># @break1:</span> +<span id="L31" class="LineNr"> 31 </span><span class="subxComment"># @loop2:</span> +<span id="L32" class="LineNr"> 32 </span><span class="subxComment"># 74/jump-if-= @loop2/disp8</span> +<span id="L33" class="LineNr"> 33 </span><span class="subxComment"># @break2:</span> <span id="L34" class="LineNr"> 34 </span><span class="subxComment">#</span> <span id="L35" class="LineNr"> 35 </span><span class="subxComment"># Example 3:</span> <span id="L36" class="LineNr"> 36 </span><span class="subxComment"># $ cat x.subx</span> @@ -100,12 +100,12 @@ if ('onhashchange' in window) { <span id="L41" class="LineNr"> 41 </span><span class="subxComment"># 7c/jump-if-< loop/disp8</span> <span id="L42" class="LineNr"> 42 </span><span class="subxComment"># }</span> <span id="L43" class="LineNr"> 43 </span><span class="subxComment"># $ cat x.subx |braces</span> -<span id="L44" class="LineNr"> 44 </span><span class="subxComment"># _loop1:</span> -<span id="L45" class="LineNr"> 45 </span><span class="subxComment"># _loop2:</span> -<span id="L46" class="LineNr"> 46 </span><span class="subxComment"># 74/jump-if-= _loop2/disp8</span> -<span id="L47" class="LineNr"> 47 </span><span class="subxComment"># _break2:</span> -<span id="L48" class="LineNr"> 48 </span><span class="subxComment"># 7c/jump-if-< _loop1/disp8</span> -<span id="L49" class="LineNr"> 49 </span><span class="subxComment"># _break1:</span> +<span id="L44" class="LineNr"> 44 </span><span class="subxComment"># @loop1:</span> +<span id="L45" class="LineNr"> 45 </span><span class="subxComment"># @loop2:</span> +<span id="L46" class="LineNr"> 46 </span><span class="subxComment"># 74/jump-if-= @loop2/disp8</span> +<span id="L47" class="LineNr"> 47 </span><span class="subxComment"># @break2:</span> +<span id="L48" class="LineNr"> 48 </span><span class="subxComment"># 7c/jump-if-< @loop1/disp8</span> +<span id="L49" class="LineNr"> 49 </span><span class="subxComment"># @break1:</span> <span id="L50" class="LineNr"> 50 </span> <span id="L51" class="LineNr"> 51 </span>== code <span id="L52" class="LineNr"> 52 </span> @@ -144,13 +144,13 @@ if ('onhashchange' in window) { <span id="L85" class="LineNr"> 85 </span> <span class="subxComment"># if (line->write == 0) break # end of file</span> <span id="L86" class="LineNr"> 86 </span> <span class="subxComment"># skip-chars-matching-whitespace(line)</span> <span id="L87" class="LineNr"> 87 </span> <span class="subxComment"># if line->data[line->read] == '{'</span> -<span id="L88" class="LineNr"> 88 </span> <span class="subxComment"># print(out, "_loop" next-label-id ":\n")</span> +<span id="L88" class="LineNr"> 88 </span> <span class="subxComment"># print(out, "@loop" next-label-id ":\n")</span> <span id="L89" class="LineNr"> 89 </span> <span class="subxComment"># push(label-stack, next-label-id)</span> <span id="L90" class="LineNr"> 90 </span> <span class="subxComment"># ++next-label-id</span> <span id="L91" class="LineNr"> 91 </span> <span class="subxComment"># continue</span> <span id="L92" class="LineNr"> 92 </span> <span class="subxComment"># if line->data[line->read] == '}'</span> <span id="L93" class="LineNr"> 93 </span> <span class="subxComment"># var top = pop(label-stack)</span> -<span id="L94" class="LineNr"> 94 </span> <span class="subxComment"># print(out, "_break" top ":\n")</span> +<span id="L94" class="LineNr"> 94 </span> <span class="subxComment"># print(out, "@break" top ":\n")</span> <span id="L95" class="LineNr"> 95 </span> <span class="subxComment"># continue</span> <span id="L96" class="LineNr"> 96 </span> <span class="subxComment"># while true</span> <span id="L97" class="LineNr"> 97 </span> <span class="subxComment"># var word-slice: (addr slice) = next-word-or-string(line)</span> @@ -160,11 +160,11 @@ if ('onhashchange' in window) { <span id="L101" class="LineNr">101 </span> <span class="subxComment"># continue</span> <span id="L102" class="LineNr">102 </span> <span class="subxComment"># if slice-starts-with?(word-slice, "break/")</span> <span id="L103" class="LineNr">103 </span> <span class="subxComment"># var top = top(label-stack)</span> -<span id="L104" class="LineNr">104 </span> <span class="subxComment"># print(out, "_break" top)</span> +<span id="L104" class="LineNr">104 </span> <span class="subxComment"># print(out, "@break" top)</span> <span id="L105" class="LineNr">105 </span> <span class="subxComment"># word-slice->start += len("break")</span> <span id="L106" class="LineNr">106 </span> <span class="subxComment"># else if slice-starts-with?(word-slice, "loop/")</span> <span id="L107" class="LineNr">107 </span> <span class="subxComment"># var top = top(label-stack)</span> -<span id="L108" class="LineNr">108 </span> <span class="subxComment"># print(out, "_loop" top)</span> +<span id="L108" class="LineNr">108 </span> <span class="subxComment"># print(out, "@loop" top)</span> <span id="L109" class="LineNr">109 </span> <span class="subxComment"># word-slice->start += len("loop")</span> <span id="L110" class="LineNr">110 </span> <span class="subxComment"># print(out, word-slice " ")</span> <span id="L111" class="LineNr">111 </span> <span class="subxComment"># print(out, "\n")</span> @@ -211,13 +211,13 @@ if ('onhashchange' in window) { <span id="L152" class="LineNr">152 </span> <span class="subxS1Comment"># . eax = line->data[line->read]</span> <span id="L153" class="LineNr">153 </span> 8b/-> *(ecx+4) 0/r32/eax <span id="L154" class="LineNr">154 </span> 8a/copy-byte *(ecx+eax+0xc) 0/r32/AL -<span id="L155" class="LineNr">155 </span> 81 4/subop/and %eax 0xff/imm32 +<span id="L155" class="LineNr">155 </span> 25/and-eax-with 0xff/imm32 <span id="L156" class="LineNr">156 </span> <span class="subxS1Comment"># . if (eax != '{') continue</span> <span id="L157" class="LineNr">157 </span> 3d/compare-eax-and 0x7b/imm32/open-curly <span id="L158" class="LineNr">158 </span> 0f 85/jump-if-!= $subx-braces:check-for-curly-closed/disp32 <span id="L159" class="LineNr">159 </span><span class="Constant">$subx-braces:emit-curly-open</span>: -<span id="L160" class="LineNr">160 </span> <span class="subxComment"># print(out, "_loop" next-label-id ":")</span> -<span id="L161" class="LineNr">161 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_loop"</span>) +<span id="L160" class="LineNr">160 </span> <span class="subxComment"># print(out, "@loop" next-label-id ":")</span> +<span id="L161" class="LineNr">161 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"@loop"</span>) <span id="L162" class="LineNr">162 </span> (<a href='117write-int-hex.subx.html#L288'>write-int32-hex-buffered</a> *(ebp+0xc) %ebx) <span id="L163" class="LineNr">163 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">":"</span>) <span id="L164" class="LineNr">164 </span> <span class="subxComment"># push(label-stack, next-label-id)</span> @@ -233,8 +233,8 @@ if ('onhashchange' in window) { <span id="L174" class="LineNr">174 </span><span class="Constant">$subx-braces:emit-curly-closed</span>: <span id="L175" class="LineNr">175 </span> <span class="subxComment"># eax = pop(label-stack)</span> <span id="L176" class="LineNr">176 </span> (<a href='203stack.subx.html#L234'>pop</a> %edx) -<span id="L177" class="LineNr">177 </span> <span class="subxComment"># print(out, "_break" eax ":")</span> -<span id="L178" class="LineNr">178 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_break"</span>) +<span id="L177" class="LineNr">177 </span> <span class="subxComment"># print(out, "@break" eax ":")</span> +<span id="L178" class="LineNr">178 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"@break"</span>) <span id="L179" class="LineNr">179 </span> (<a href='117write-int-hex.subx.html#L288'>write-int32-hex-buffered</a> *(ebp+0xc) %eax) <span id="L180" class="LineNr">180 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">":"</span>) <span id="L181" class="LineNr">181 </span> <span class="subxComment"># continue</span> @@ -251,7 +251,7 @@ if ('onhashchange' in window) { <span id="L192" class="LineNr">192 </span> <span class="subxS1Comment"># . eax = *word-slice->start</span> <span id="L193" class="LineNr">193 </span> 8b/-> *edi 0/r32/eax <span id="L194" class="LineNr">194 </span> 8a/copy-byte *eax 0/r32/AL -<span id="L195" class="LineNr">195 </span> 81 4/subop/and %eax 0xff/imm32 +<span id="L195" class="LineNr">195 </span> 25/and-eax-with 0xff/imm32 <span id="L196" class="LineNr">196 </span> <span class="subxS1Comment"># . if (eax == '#') continue</span> <span id="L197" class="LineNr">197 </span> 3d/compare-eax-and 0x23/imm32/hash <span id="L198" class="LineNr">198 </span> 74/jump-if-= $subx-braces:word-loop/disp8 @@ -264,8 +264,8 @@ if ('onhashchange' in window) { <span id="L205" class="LineNr">205 </span> 74/jump-if-= $subx-braces:check-for-loop/disp8 <span id="L206" class="LineNr">206 </span><span class="Constant">$subx-braces:emit-break</span>: <span id="L207" class="LineNr">207 </span> (<a href='203stack.subx.html#L338'>top</a> %edx) -<span id="L208" class="LineNr">208 </span> <span class="subxComment"># print(out, "_break" eax)</span> -<span id="L209" class="LineNr">209 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_break"</span>) +<span id="L208" class="LineNr">208 </span> <span class="subxComment"># print(out, "@break" eax)</span> +<span id="L209" class="LineNr">209 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"@break"</span>) <span id="L210" class="LineNr">210 </span> (<a href='117write-int-hex.subx.html#L288'>write-int32-hex-buffered</a> *(ebp+0xc) %eax) <span id="L211" class="LineNr">211 </span> <span class="subxComment"># word-slice->start += len("break")</span> <span id="L212" class="LineNr">212 </span> 81 0/subop/add *edi 5/imm32/strlen @@ -280,8 +280,8 @@ if ('onhashchange' in window) { <span id="L221" class="LineNr">221 </span> 74/jump-if-= $subx-braces:emit-word-slice/disp8 <span id="L222" class="LineNr">222 </span><span class="Constant">$subx-braces:emit-loop</span>: <span id="L223" class="LineNr">223 </span> (<a href='203stack.subx.html#L338'>top</a> %edx) -<span id="L224" class="LineNr">224 </span> <span class="subxComment"># print(out, "_loop" eax)</span> -<span id="L225" class="LineNr">225 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"_loop"</span>) +<span id="L224" class="LineNr">224 </span> <span class="subxComment"># print(out, "@loop" eax)</span> +<span id="L225" class="LineNr">225 </span> (<a href='116write-buffered.subx.html#L8'>write-buffered</a> *(ebp+0xc) <span class="Constant">"@loop"</span>) <span id="L226" class="LineNr">226 </span> (<a href='117write-int-hex.subx.html#L288'>write-int32-hex-buffered</a> *(ebp+0xc) %eax) <span id="L227" class="LineNr">227 </span> <span class="subxComment"># word-slice->start += len("loop")</span> <span id="L228" class="LineNr">228 </span> 81 0/subop/add *edi 4/imm32/strlen @@ -343,10 +343,10 @@ if ('onhashchange' in window) { <span id="L288" class="LineNr">288 </span> <span class="subxComment"># }</span> <span id="L289" class="LineNr">289 </span> <span class="subxComment">#</span> <span id="L290" class="LineNr">290 </span> <span class="subxComment"># output:</span> -<span id="L291" class="LineNr">291 </span> <span class="subxComment"># _loop1:</span> -<span id="L292" class="LineNr">292 </span> <span class="subxComment"># ab _break1/imm32</span> -<span id="L293" class="LineNr">293 </span> <span class="subxComment"># cd _loop1/imm32</span> -<span id="L294" class="LineNr">294 </span> <span class="subxComment"># _break1:</span> +<span id="L291" class="LineNr">291 </span> <span class="subxComment"># @loop1:</span> +<span id="L292" class="LineNr">292 </span> <span class="subxComment"># ab @break1/imm32</span> +<span id="L293" class="LineNr">293 </span> <span class="subxComment"># cd @loop1/imm32</span> +<span id="L294" class="LineNr">294 </span> <span class="subxComment"># @break1:</span> <span id="L295" class="LineNr">295 </span> <span class="subxComment">#</span> <span id="L296" class="LineNr">296 </span> <span class="subxS1Comment"># . prologue</span> <span id="L297" class="LineNr">297 </span> 55/push-ebp @@ -362,7 +362,7 @@ if ('onhashchange' in window) { <span id="L307" class="LineNr">307 </span> <span class="subxComment"># check that the line just passed through</span> <span id="L308" class="LineNr">308 </span> (<a href='115write-byte.subx.html#L81'>flush</a> <a href='115write-byte.subx.html#L425'>_test-output-buffered-file</a>) <span id="L309" class="Folded">309 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L314" class="LineNr">314 </span> (<a href='109stream-equal.subx.html#L194'>check-stream-equal</a> <a href='115write-byte.subx.html#L287'>_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="L314" class="LineNr">314 </span> (<a href='109stream-equal.subx.html#L194'>check-stream-equal</a> <a href='115write-byte.subx.html#L287'>_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="L315" class="LineNr">315 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L316" class="LineNr">316 </span> 89/<- %esp 5/r32/ebp <span id="L317" class="LineNr">317 </span> 5d/pop-to-ebp @@ -378,12 +378,12 @@ if ('onhashchange' in window) { <span id="L327" class="LineNr">327 </span> <span class="subxComment"># }</span> <span id="L328" class="LineNr">328 </span> <span class="subxComment">#</span> <span id="L329" class="LineNr">329 </span> <span class="subxComment"># output:</span> -<span id="L330" class="LineNr">330 </span> <span class="subxComment"># _loop1:</span> -<span id="L331" class="LineNr">331 </span> <span class="subxComment"># _loop2:</span> -<span id="L332" class="LineNr">332 </span> <span class="subxComment"># ab _break2/imm32</span> -<span id="L333" class="LineNr">333 </span> <span class="subxComment"># _break2:</span> -<span id="L334" class="LineNr">334 </span> <span class="subxComment"># cd _loop1/imm32</span> -<span id="L335" class="LineNr">335 </span> <span class="subxComment"># _break1:</span> +<span id="L330" class="LineNr">330 </span> <span class="subxComment"># @loop1:</span> +<span id="L331" class="LineNr">331 </span> <span class="subxComment"># @loop2:</span> +<span id="L332" class="LineNr">332 </span> <span class="subxComment"># ab @break2/imm32</span> +<span id="L333" class="LineNr">333 </span> <span class="subxComment"># @break2:</span> +<span id="L334" class="LineNr">334 </span> <span class="subxComment"># cd @loop1/imm32</span> +<span id="L335" class="LineNr">335 </span> <span class="subxComment"># @break1:</span> <span id="L336" class="LineNr">336 </span> <span class="subxComment">#</span> <span id="L337" class="LineNr">337 </span> <span class="subxS1Comment"># . prologue</span> <span id="L338" class="LineNr">338 </span> 55/push-ebp @@ -399,7 +399,7 @@ if ('onhashchange' in window) { <span id="L348" class="LineNr">348 </span> <span class="subxComment"># check that the line just passed through</span> <span id="L349" class="LineNr">349 </span> (<a href='115write-byte.subx.html#L81'>flush</a> <a href='115write-byte.subx.html#L425'>_test-output-buffered-file</a>) <span id="L350" class="Folded">350 </span><span class="Folded">+-- 5 lines: #? # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span> -<span id="L355" class="LineNr">355 </span> (<a href='109stream-equal.subx.html#L194'>check-stream-equal</a> <a href='115write-byte.subx.html#L287'>_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="L355" class="LineNr">355 </span> (<a href='109stream-equal.subx.html#L194'>check-stream-equal</a> <a href='115write-byte.subx.html#L287'>_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="L356" class="LineNr">356 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L357" class="LineNr">357 </span> 89/<- %esp 5/r32/ebp <span id="L358" class="LineNr">358 </span> 5d/pop-to-ebp |