diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-27 00:39:46 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-27 00:39:46 -0800 |
commit | 2104d1a75b76dbffc0b15a96c98d94e7a16594e8 (patch) | |
tree | 2a839b86e76431a9bbe4bf155f7411171a26d7f8 /html/apps/calls.subx.html | |
parent | 71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff) | |
download | mu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz |
5925
Diffstat (limited to 'html/apps/calls.subx.html')
-rw-r--r-- | html/apps/calls.subx.html | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/html/apps/calls.subx.html b/html/apps/calls.subx.html index 149ef8c7..e23c2d8b 100644 --- a/html/apps/calls.subx.html +++ b/html/apps/calls.subx.html @@ -136,10 +136,10 @@ if ('onhashchange' in window) { <span id="L75" class="LineNr"> 75 </span> b8/copy-to-eax 1/imm32/exit <span id="L76" class="LineNr"> 76 </span> cd/syscall 0x80/imm8 <span id="L77" class="LineNr"> 77 </span> -<span id="L78" class="LineNr"> 78 </span><span class="subxFunction">subx-calls</span>: <span class="subxComment"># in : (addr buffered-file), out : (addr buffered-file)</span> +<span id="L78" class="LineNr"> 78 </span><span class="subxFunction">subx-calls</span>: <span class="subxComment"># in: (addr buffered-file), out: (addr buffered-file)</span> <span id="L79" class="LineNr"> 79 </span> <span class="subxComment"># pseudocode:</span> -<span id="L80" class="LineNr"> 80 </span> <span class="subxComment"># var line : (stream byte 512)</span> -<span id="L81" class="LineNr"> 81 </span> <span class="subxComment"># var words : (stream slice 16) # at most function name and 15 args</span> +<span id="L80" class="LineNr"> 80 </span> <span class="subxComment"># var line: (stream byte 512)</span> +<span id="L81" class="LineNr"> 81 </span> <span class="subxComment"># var words: (stream slice 16) # at most function name and 15 args</span> <span id="L82" class="LineNr"> 82 </span> <span class="subxComment"># while true</span> <span id="L83" class="LineNr"> 83 </span> <span class="subxComment"># clear-stream(line)</span> <span id="L84" class="LineNr"> 84 </span> <span class="subxComment"># read-line-buffered(in, line)</span> @@ -166,13 +166,13 @@ if ('onhashchange' in window) { <span id="L105" class="LineNr"> 105 </span> 51/push-ecx <span id="L106" class="LineNr"> 106 </span> 52/push-edx <span id="L107" class="LineNr"> 107 </span> 56/push-esi -<span id="L108" class="LineNr"> 108 </span> <span class="subxComment"># var line/esi : (stream byte 512)</span> +<span id="L108" class="LineNr"> 108 </span> <span class="subxComment"># var line/esi: (stream byte 512)</span> <span id="L109" class="LineNr"> 109 </span> 81 5/subop/subtract %esp 0x200/imm32 <span id="L110" class="LineNr"> 110 </span> 68/push 0x200/imm32/length <span id="L111" class="LineNr"> 111 </span> 68/push 0/imm32/read <span id="L112" class="LineNr"> 112 </span> 68/push 0/imm32/write <span id="L113" class="LineNr"> 113 </span> 89/<- %esi 4/r32/esp -<span id="L114" class="LineNr"> 114 </span> <span class="subxComment"># var words/edx : (stream slice 128) # 16 rows * 8 bytes/row</span> +<span id="L114" class="LineNr"> 114 </span> <span class="subxComment"># var words/edx: (stream slice 128) # 16 rows * 8 bytes/row</span> <span id="L115" class="LineNr"> 115 </span> 81 5/subop/subtract %esp 0x80/imm32 <span id="L116" class="LineNr"> 116 </span> 68/push 0x80/imm32/length <span id="L117" class="LineNr"> 117 </span> 68/push 0/imm32/read @@ -293,9 +293,9 @@ if ('onhashchange' in window) { <span id="L232" class="LineNr"> 232 </span> 5d/pop-to-ebp <span id="L233" class="LineNr"> 233 </span> c3/return <span id="L234" class="LineNr"> 234 </span> -<span id="L235" class="LineNr"> 235 </span><span class="subxFunction">parse-line</span>: <span class="subxComment"># line : (addr stream byte), words : (addr stream slice)</span> +<span id="L235" class="LineNr"> 235 </span><span class="subxFunction">parse-line</span>: <span class="subxComment"># line: (addr stream byte), words: (addr stream slice)</span> <span id="L236" class="LineNr"> 236 </span> <span class="subxComment"># pseudocode:</span> -<span id="L237" class="LineNr"> 237 </span> <span class="subxComment"># var word-slice : slice</span> +<span id="L237" class="LineNr"> 237 </span> <span class="subxComment"># var word-slice: slice</span> <span id="L238" class="LineNr"> 238 </span> <span class="subxComment"># while true</span> <span id="L239" class="LineNr"> 239 </span> <span class="subxComment"># word-slice = next-word-string-or-expression-without-metadata(line)</span> <span id="L240" class="LineNr"> 240 </span> <span class="subxComment"># if slice-empty?(word-slice)</span> @@ -308,7 +308,7 @@ if ('onhashchange' in window) { <span id="L247" class="LineNr"> 247 </span> 89/<- %ebp 4/r32/esp <span id="L248" class="LineNr"> 248 </span> <span class="subxS1Comment"># . save registers</span> <span id="L249" class="LineNr"> 249 </span> 51/push-ecx -<span id="L250" class="LineNr"> 250 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L250" class="LineNr"> 250 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L251" class="LineNr"> 251 </span> 68/push 0/imm32/end <span id="L252" class="LineNr"> 252 </span> 68/push 0/imm32/start <span id="L253" class="LineNr"> 253 </span> 89/<- %ecx 4/r32/esp @@ -363,7 +363,7 @@ if ('onhashchange' in window) { <span id="L341" class="LineNr"> 341 </span> 5d/pop-to-ebp <span id="L342" class="LineNr"> 342 </span> c3/return <span id="L343" class="LineNr"> 343 </span> -<span id="L344" class="LineNr"> 344 </span><span class="subxFunction">emit-call</span>: <span class="subxComment"># out : (addr buffered-file), words : (addr stream slice)</span> +<span id="L344" class="LineNr"> 344 </span><span class="subxFunction">emit-call</span>: <span class="subxComment"># out: (addr buffered-file), words: (addr stream slice)</span> <span id="L345" class="LineNr"> 345 </span> <span class="subxComment"># pseudocode:</span> <span id="L346" class="LineNr"> 346 </span> <span class="subxComment"># if (words->write < 8) abort</span> <span id="L347" class="LineNr"> 347 </span> <span class="subxComment"># curr = &words->data[words->write-8]</span> @@ -404,9 +404,9 @@ if ('onhashchange' in window) { <span id="L382" class="LineNr"> 382 </span> 8b/-> *esi 1/r32/ecx <span id="L383" class="LineNr"> 383 </span> 81 5/subop/subtract %ecx 8/imm32 <span id="L384" class="LineNr"> 384 </span> 0f 8c/jump-if-< $emit-call:error1/disp32 -<span id="L385" class="LineNr"> 385 </span> <span class="subxComment"># var curr/ecx : (addr slice) = &words->data[words->write-8]</span> +<span id="L385" class="LineNr"> 385 </span> <span class="subxComment"># var curr/ecx: (addr slice) = &words->data[words->write-8]</span> <span id="L386" class="LineNr"> 386 </span> 8d/copy-address *(esi+ecx+0xc) 1/r32/ecx -<span id="L387" class="LineNr"> 387 </span> <span class="subxComment"># var min/edx : (addr byte) = words->data</span> +<span id="L387" class="LineNr"> 387 </span> <span class="subxComment"># var min/edx: (addr byte) = words->data</span> <span id="L388" class="LineNr"> 388 </span> 8d/copy-address *(esi+0xc) 2/r32/edx <span id="L389" class="LineNr"> 389 </span> <span class="subxH1Comment"># - emit pushes</span> <span id="L390" class="LineNr"> 390 </span><span class="Constant">$emit-call:push-loop</span>: @@ -414,9 +414,9 @@ if ('onhashchange' in window) { <span id="L392" class="LineNr"> 392 </span> 39/compare %ecx 2/r32/edx <span id="L393" class="LineNr"> 393 </span> 0f 8e/jump-if-<= $emit-call:call-instruction/disp32 <span id="L394" class="LineNr"> 394 </span> <span class="subxComment"># if (*curr->start in '%' '*') goto push-rm32</span> -<span id="L395" class="LineNr"> 395 </span> <span class="subxS1Comment"># . var start/eax : (addr byte) = curr->start</span> +<span id="L395" class="LineNr"> 395 </span> <span class="subxS1Comment"># . var start/eax: (addr byte) = curr->start</span> <span id="L396" class="LineNr"> 396 </span> 8b/-> *ecx 0/r32/eax -<span id="L397" class="LineNr"> 397 </span> <span class="subxS1Comment"># . var c/eax : byte = *eax</span> +<span id="L397" class="LineNr"> 397 </span> <span class="subxS1Comment"># . var c/eax: byte = *eax</span> <span id="L398" class="LineNr"> 398 </span> 8b/-> *eax 0/r32/eax <span id="L399" class="LineNr"> 399 </span> 81 4/subop/and %eax 0xff/imm32 <span id="L400" class="LineNr"> 400 </span> <span class="subxS1Comment"># . if (c == '%') goto push-rm32</span> @@ -732,7 +732,7 @@ if ('onhashchange' in window) { <span id="L742" class="LineNr"> 742 </span> 5d/pop-to-ebp <span id="L743" class="LineNr"> 743 </span> c3/return <span id="L744" class="LineNr"> 744 </span> -<span id="L745" class="LineNr"> 745 </span><span class="subxFunction">next-word-string-or-expression-without-metadata</span>: <span class="subxComment"># line : (addr stream byte), out : (addr slice)</span> +<span id="L745" class="LineNr"> 745 </span><span class="subxFunction">next-word-string-or-expression-without-metadata</span>: <span class="subxComment"># line: (addr stream byte), out: (addr slice)</span> <span id="L746" class="LineNr"> 746 </span> <span class="subxComment"># pseudocode:</span> <span id="L747" class="LineNr"> 747 </span> <span class="subxComment"># skip-chars-matching(line, ' ')</span> <span id="L748" class="LineNr"> 748 </span> <span class="subxComment"># if line->read >= line->write # end of line</span> @@ -821,7 +821,7 @@ if ('onhashchange' in window) { <span id="L831" class="LineNr"> 831 </span> 8d/copy-address *(esi+ecx+0xc) 0/r32/eax <span id="L832" class="LineNr"> 832 </span> 89/<- *edi 0/r32/eax <span id="L833" class="LineNr"> 833 </span> <span class="subxComment"># if (line->data[line->read] != '#') goto next check</span> -<span id="L834" class="LineNr"> 834 </span> <span class="subxS1Comment"># . var eax : byte = line->data[line->read]</span> +<span id="L834" class="LineNr"> 834 </span> <span class="subxS1Comment"># . var eax: byte = line->data[line->read]</span> <span id="L835" class="LineNr"> 835 </span> 31/xor %eax 0/r32/eax <span id="L836" class="LineNr"> 836 </span> 8a/copy-byte *(esi+ecx+0xc) 0/r32/AL <span id="L837" class="LineNr"> 837 </span> <span class="subxS1Comment"># . if (eax != '#') goto next check</span> @@ -1182,7 +1182,7 @@ if ('onhashchange' in window) { <span id="L1192" class="LineNr">1192 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1193" class="LineNr">1193 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1194" class="LineNr">1194 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1195" class="LineNr">1195 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1195" class="LineNr">1195 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1196" class="LineNr">1196 </span> 68/push 0/imm32/end <span id="L1197" class="LineNr">1197 </span> 68/push 0/imm32/start <span id="L1198" class="LineNr">1198 </span> 89/<- %ecx 4/r32/esp @@ -1255,7 +1255,7 @@ if ('onhashchange' in window) { <span id="L1265" class="LineNr">1265 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1266" class="LineNr">1266 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1267" class="LineNr">1267 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1268" class="LineNr">1268 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1268" class="LineNr">1268 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1269" class="LineNr">1269 </span> 68/push 0/imm32/end <span id="L1270" class="LineNr">1270 </span> 68/push 0/imm32/start <span id="L1271" class="LineNr">1271 </span> 89/<- %ecx 4/r32/esp @@ -1328,7 +1328,7 @@ if ('onhashchange' in window) { <span id="L1338" class="LineNr">1338 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1339" class="LineNr">1339 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1340" class="LineNr">1340 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1341" class="LineNr">1341 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1341" class="LineNr">1341 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1342" class="LineNr">1342 </span> 68/push 0/imm32/end <span id="L1343" class="LineNr">1343 </span> 68/push 0/imm32/start <span id="L1344" class="LineNr">1344 </span> 89/<- %ecx 4/r32/esp @@ -1370,7 +1370,7 @@ if ('onhashchange' in window) { <span id="L1380" class="LineNr">1380 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1381" class="LineNr">1381 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1382" class="LineNr">1382 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1383" class="LineNr">1383 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1383" class="LineNr">1383 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1384" class="LineNr">1384 </span> 68/push 0/imm32/end <span id="L1385" class="LineNr">1385 </span> 68/push 0/imm32/start <span id="L1386" class="LineNr">1386 </span> 89/<- %ecx 4/r32/esp @@ -1433,7 +1433,7 @@ if ('onhashchange' in window) { <span id="L1443" class="LineNr">1443 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1444" class="LineNr">1444 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1445" class="LineNr">1445 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1446" class="LineNr">1446 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1446" class="LineNr">1446 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1447" class="LineNr">1447 </span> 68/push 0/imm32/end <span id="L1448" class="LineNr">1448 </span> 68/push 0/imm32/start <span id="L1449" class="LineNr">1449 </span> 89/<- %ecx 4/r32/esp @@ -1496,7 +1496,7 @@ if ('onhashchange' in window) { <span id="L1506" class="LineNr">1506 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1507" class="LineNr">1507 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1508" class="LineNr">1508 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1509" class="LineNr">1509 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1509" class="LineNr">1509 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1510" class="LineNr">1510 </span> 68/push 0/imm32/end <span id="L1511" class="LineNr">1511 </span> 68/push 0/imm32/start <span id="L1512" class="LineNr">1512 </span> 89/<- %ecx 4/r32/esp @@ -1559,7 +1559,7 @@ if ('onhashchange' in window) { <span id="L1569" class="LineNr">1569 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1570" class="LineNr">1570 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1571" class="LineNr">1571 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1572" class="LineNr">1572 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1572" class="LineNr">1572 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1573" class="LineNr">1573 </span> 68/push 0/imm32/end <span id="L1574" class="LineNr">1574 </span> 68/push 0/imm32/start <span id="L1575" class="LineNr">1575 </span> 89/<- %ecx 4/r32/esp @@ -1614,7 +1614,7 @@ if ('onhashchange' in window) { <span id="L1624" class="LineNr">1624 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1625" class="LineNr">1625 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1626" class="LineNr">1626 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1627" class="LineNr">1627 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1627" class="LineNr">1627 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1628" class="LineNr">1628 </span> 68/push 0/imm32/end <span id="L1629" class="LineNr">1629 </span> 68/push 0/imm32/start <span id="L1630" class="LineNr">1630 </span> 89/<- %ecx 4/r32/esp @@ -1669,7 +1669,7 @@ if ('onhashchange' in window) { <span id="L1679" class="LineNr">1679 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1680" class="LineNr">1680 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1681" class="LineNr">1681 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1682" class="LineNr">1682 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1682" class="LineNr">1682 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1683" class="LineNr">1683 </span> 68/push 0/imm32/end <span id="L1684" class="LineNr">1684 </span> 68/push 0/imm32/start <span id="L1685" class="LineNr">1685 </span> 89/<- %ecx 4/r32/esp @@ -1724,7 +1724,7 @@ if ('onhashchange' in window) { <span id="L1734" class="LineNr">1734 </span> e8/call <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32 <span id="L1735" class="LineNr">1735 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L1736" class="LineNr">1736 </span> 81 0/subop/add %esp 4/imm32 -<span id="L1737" class="LineNr">1737 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L1737" class="LineNr">1737 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L1738" class="LineNr">1738 </span> 68/push 0/imm32/end <span id="L1739" class="LineNr">1739 </span> 68/push 0/imm32/start <span id="L1740" class="LineNr">1740 </span> 89/<- %ecx 4/r32/esp |