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/handle.subx.html | |
parent | 71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff) | |
download | mu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz |
5925
Diffstat (limited to 'html/apps/handle.subx.html')
-rw-r--r-- | html/apps/handle.subx.html | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/html/apps/handle.subx.html b/html/apps/handle.subx.html index a3489f99..fc0ce1a8 100644 --- a/html/apps/handle.subx.html +++ b/html/apps/handle.subx.html @@ -107,7 +107,7 @@ if ('onhashchange' in window) { <span id="L44" class="LineNr"> 44 </span> b8/copy-to-eax 1/imm32/exit <span id="L45" class="LineNr"> 45 </span> cd/syscall 0x80/imm8 <span id="L46" class="LineNr"> 46 </span> -<span id="L47" class="LineNr"> 47 </span><span class="subxFunction">new</span>: <span class="subxComment"># ad : (addr allocation-descriptor), n : int, out : (handle _)</span> +<span id="L47" class="LineNr"> 47 </span><span class="subxFunction">new</span>: <span class="subxComment"># ad: (addr allocation-descriptor), n: int, out: (handle _)</span> <span id="L48" class="LineNr"> 48 </span> <span class="subxS1Comment"># . prologue</span> <span id="L49" class="LineNr"> 49 </span> 55/push-ebp <span id="L50" class="LineNr"> 50 </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> @@ -118,7 +118,7 @@ if ('onhashchange' in window) { <span id="L55" class="LineNr"> 55 </span> <span class="subxComment"># ecx = n+4</span> <span id="L56" class="LineNr"> 56 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to ecx</span> <span id="L57" class="LineNr"> 57 </span> 81 0/subop/add 3/mod/direct 1/rm32/ecx <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 ecx</span> -<span id="L58" class="LineNr"> 58 </span> <span class="subxComment"># var eax : (handle _) = allocate(ad, ecx)</span> +<span id="L58" class="LineNr"> 58 </span> <span class="subxComment"># var eax: (handle _) = allocate(ad, ecx)</span> <span id="L59" class="LineNr"> 59 </span> <span class="subxS2Comment"># . . push args</span> <span id="L60" class="LineNr"> 60 </span> 51/push-ecx <span id="L61" class="LineNr"> 61 </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> @@ -159,7 +159,7 @@ if ('onhashchange' in window) { <span id="L96" class="LineNr"> 96 </span> <span class="subxS1Comment"># . prologue</span> <span id="L97" class="LineNr"> 97 </span> 55/push-ebp <span id="L98" class="LineNr"> 98 </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="L99" class="LineNr"> 99 </span> <span class="subxComment"># var heap/edx : allocation-descriptor</span> +<span id="L99" class="LineNr"> 99 </span> <span class="subxComment"># var heap/edx: allocation-descriptor</span> <span id="L100" class="LineNr">100 </span> 68/push 0/imm32/limit <span id="L101" class="LineNr">101 </span> 68/push 0/imm32/curr <span id="L102" class="LineNr">102 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> @@ -173,7 +173,7 @@ if ('onhashchange' in window) { <span id="L110" class="LineNr">110 </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="L111" class="LineNr">111 </span> <span class="subxComment"># *Next-alloc-id = 0x34</span> <span id="L112" class="LineNr">112 </span> c7 0/subop/copy 0/mod/indirect 5/rm32/.disp32 <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="SpecialChar"><a href='handle.subx.html#L425'>Next-alloc-id</a></span>/disp32 0x34/imm32 <span class="subxComment"># copy to *Next-alloc-id</span> -<span id="L113" class="LineNr">113 </span> <span class="subxComment"># var handle/ecx : handle</span> +<span id="L113" class="LineNr">113 </span> <span class="subxComment"># var handle/ecx: handle</span> <span id="L114" class="LineNr">114 </span> 68/push 0/imm32/address <span id="L115" class="LineNr">115 </span> 68/push 0/imm32/alloc-id <span id="L116" class="LineNr">116 </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> @@ -229,7 +229,7 @@ if ('onhashchange' in window) { <span id="L166" class="LineNr">166 </span> <span class="subxS1Comment"># . *Next-alloc-id = 0x34</span> <span id="L167" class="LineNr">167 </span> c7 0/subop/copy 0/mod/indirect 5/rm32/.disp32 <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="SpecialChar"><a href='handle.subx.html#L425'>Next-alloc-id</a></span>/disp32 0x34/imm32 <span class="subxComment"># copy to *Next-alloc-id</span> <span id="L168" class="LineNr">168 </span> <span class="subxComment"># define an allocation-descriptor with no space left</span> -<span id="L169" class="LineNr">169 </span> <span class="subxS1Comment"># . var ad/eax : allocation-descriptor = {0x10, 0x10}</span> +<span id="L169" class="LineNr">169 </span> <span class="subxS1Comment"># . var ad/eax: allocation-descriptor = {0x10, 0x10}</span> <span id="L170" class="LineNr">170 </span> 68/push 0x10/imm32/limit <span id="L171" class="LineNr">171 </span> 68/push 0x10/imm32/curr <span id="L172" class="LineNr">172 </span> 89/copy 3/mod/direct 0/rm32/eax <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 eax</span> @@ -284,7 +284,7 @@ if ('onhashchange' in window) { <span id="L221" class="LineNr">221 </span> 5d/pop-to-ebp <span id="L222" class="LineNr">222 </span> c3/return <span id="L223" class="LineNr">223 </span> -<span id="L224" class="LineNr">224 </span><span class="subxFunction">lookup</span>: <span class="subxComment"># h : (handle T) -> eax : (addr T)</span> +<span id="L224" class="LineNr">224 </span><span class="subxFunction">lookup</span>: <span class="subxComment"># h: (handle T) -> eax: (addr T)</span> <span id="L225" class="LineNr">225 </span> <span class="subxS1Comment"># . prologue</span> <span id="L226" class="LineNr">226 </span> 55/push-ebp <span id="L227" class="LineNr">227 </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> @@ -345,7 +345,7 @@ if ('onhashchange' in window) { <span id="L282" class="LineNr">282 </span> 55/push-ebp <span id="L283" class="LineNr">283 </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="L284" class="LineNr">284 </span> <span class="subxS1Comment"># . save registers</span> -<span id="L285" class="LineNr">285 </span> <span class="subxComment"># var heap/ebx : allocation-descriptor</span> +<span id="L285" class="LineNr">285 </span> <span class="subxComment"># var heap/ebx: allocation-descriptor</span> <span id="L286" class="LineNr">286 </span> 68/push 0/imm32/limit <span id="L287" class="LineNr">287 </span> 68/push 0/imm32/curr <span id="L288" class="LineNr">288 </span> 89/copy 3/mod/direct 3/rm32/ebx <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 ebx</span> @@ -357,7 +357,7 @@ if ('onhashchange' in window) { <span id="L294" class="LineNr">294 </span> e8/call <a href='../053new-segment.subx.html#L41'>new-segment</a>/disp32 <span id="L295" class="LineNr">295 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L296" class="LineNr">296 </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="L297" class="LineNr">297 </span> <span class="subxComment"># var handle/ecx : handle</span> +<span id="L297" class="LineNr">297 </span> <span class="subxComment"># var handle/ecx: handle</span> <span id="L298" class="LineNr">298 </span> 68/push 0/imm32/address <span id="L299" class="LineNr">299 </span> 68/push 0/imm32/alloc-id <span id="L300" class="LineNr">300 </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> @@ -413,7 +413,7 @@ if ('onhashchange' in window) { <span id="L350" class="LineNr">350 </span> <span class="subxS1Comment"># . prologue</span> <span id="L351" class="LineNr">351 </span> 55/push-ebp <span id="L352" class="LineNr">352 </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="L353" class="LineNr">353 </span> <span class="subxComment"># var heap/esi : allocation-descriptor</span> +<span id="L353" class="LineNr">353 </span> <span class="subxComment"># var heap/esi: allocation-descriptor</span> <span id="L354" class="LineNr">354 </span> 68/push 0/imm32/limit <span id="L355" class="LineNr">355 </span> 68/push 0/imm32/curr <span id="L356" class="LineNr">356 </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> @@ -425,7 +425,7 @@ if ('onhashchange' in window) { <span id="L362" class="LineNr">362 </span> e8/call <a href='../053new-segment.subx.html#L41'>new-segment</a>/disp32 <span id="L363" class="LineNr">363 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L364" class="LineNr">364 </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="L365" class="LineNr">365 </span> <span class="subxComment"># var h1/ecx : handle</span> +<span id="L365" class="LineNr">365 </span> <span class="subxComment"># var h1/ecx: handle</span> <span id="L366" class="LineNr">366 </span> 68/push 0/imm32/address <span id="L367" class="LineNr">367 </span> 68/push 0/imm32/alloc-id <span id="L368" class="LineNr">368 </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> @@ -444,7 +444,7 @@ if ('onhashchange' in window) { <span id="L381" class="LineNr">381 </span> <span class="subxComment"># reset heap->curr to mimic reclamation</span> <span id="L382" class="LineNr">382 </span> 89/copy 0/mod/indirect 6/rm32/esi <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 *esi</span> <span id="L383" class="LineNr">383 </span> <span class="subxComment"># second allocation that returns the same address as the first</span> -<span id="L384" class="LineNr">384 </span> <span class="subxComment"># var h2/edx : handle</span> +<span id="L384" class="LineNr">384 </span> <span class="subxComment"># var h2/edx: handle</span> <span id="L385" class="LineNr">385 </span> 68/push 0/imm32/address <span id="L386" class="LineNr">386 </span> 68/push 0/imm32/alloc-id <span id="L387" class="LineNr">387 </span> 89/copy 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to edx</span> |