diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-02-18 22:43:01 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-02-18 22:43:01 -0800 |
commit | e99038ea514a8703b170689d5a0730c8d2e542e7 (patch) | |
tree | 841f1bb5b26c8110ba272dcae9d6a84d083c783e /html/subx/010---vm.cc.html | |
parent | 8188bbbc9408322c18cdc2d1049126900abf793c (diff) | |
download | mu-e99038ea514a8703b170689d5a0730c8d2e542e7.tar.gz |
4982
Diffstat (limited to 'html/subx/010---vm.cc.html')
-rw-r--r-- | html/subx/010---vm.cc.html | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/html/subx/010---vm.cc.html b/html/subx/010---vm.cc.html index f7a9812d..a71135fb 100644 --- a/html/subx/010---vm.cc.html +++ b/html/subx/010---vm.cc.html @@ -87,10 +87,10 @@ if ('onhashchange' in window) { <span id="L26" class="LineNr"> 26 </span><span class="Delimiter">};</span> <span id="L27" class="LineNr"> 27 </span><span class="Delimiter">:(before "End Globals")</span> <span id="L28" class="LineNr"> 28 </span><a href='010---vm.cc.html#L23'>reg</a> <span class="Special"><a href='010---vm.cc.html#L28'>Reg</a></span>[NUM_INT_REGISTERS] = <span class="Delimiter">{</span> <span class="Delimiter">{</span><span class="Constant">0</span><span class="Delimiter">}</span> <span class="Delimiter">};</span> -<span id="L29" class="LineNr"> 29 </span><span class="Normal">uint32_t</span> <a href='010---vm.cc.html#L29'>EIP</a> = <span class="Constant">1</span><span class="Delimiter">;</span> <span class="Comment">// preserve null pointer</span> +<span id="L29" class="LineNr"> 29 </span><span class="Normal">uint32_t</span> EIP = <span class="Constant">1</span><span class="Delimiter">;</span> <span class="Comment">// preserve null pointer</span> <span id="L30" class="LineNr"> 30 </span><span class="Delimiter">:(before "End Reset")</span> <span id="L31" class="LineNr"> 31 </span>bzero<span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L28'>Reg</a></span><span class="Delimiter">,</span> <span class="Normal">sizeof</span><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L28'>Reg</a></span><span class="Delimiter">));</span> -<span id="L32" class="LineNr"> 32 </span><a href='010---vm.cc.html#L29'>EIP</a> = <span class="Constant">1</span><span class="Delimiter">;</span> <span class="Comment">// preserve null pointer</span> +<span id="L32" class="LineNr"> 32 </span>EIP = <span class="Constant">1</span><span class="Delimiter">;</span> <span class="Comment">// preserve null pointer</span> <span id="L33" class="LineNr"> 33 </span> <span id="L34" class="LineNr"> 34 </span><span class="Delimiter">:(before "End <a href='001help.cc.html#L53'>Help</a> Contents")</span> <span id="L35" class="LineNr"> 35 </span>cerr << <span class="Constant">" registers\n"</span><span class="Delimiter">;</span> @@ -302,7 +302,7 @@ if ('onhashchange' in window) { <span id="L241" class="LineNr">241 </span> <span class="Delimiter">}</span> <span id="L242" class="LineNr">242 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>result == <span class="Constant">NULL</span><span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L243" class="LineNr">243 </span> <a href='003trace.cc.html#L190'>raise</a> << <span class="Constant">"Tried to access uninitialized memory at address 0x"</span> << <a href='010---vm.cc.html#L413'>HEXWORD</a> << addr << <span class="cSpecial">'\n'</span> << end<span class="Delimiter">();</span> -<span id="L244" class="LineNr">244 </span> <a href='003trace.cc.html#L190'>raise</a> << <span class="Constant">"The entire 4-byte <a href='011run.cc.html#L123'>word</a> should be initialized and lie in a single segment.\n"</span> << end<span class="Delimiter">();</span> +<span id="L244" class="LineNr">244 </span> <a href='003trace.cc.html#L190'>raise</a> << <span class="Constant">"The entire 4-byte <a href='011run.cc.html#L119'>word</a> should be initialized and lie in a single segment.\n"</span> << end<span class="Delimiter">();</span> <span id="L245" class="LineNr">245 </span> <span class="Delimiter">}</span> <span id="L246" class="LineNr">246 </span> <span class="Identifier">return</span> result<span class="Delimiter">;</span> <span id="L247" class="LineNr">247 </span><span class="Delimiter">}</span> @@ -362,12 +362,12 @@ if ('onhashchange' in window) { <span id="L301" class="LineNr">301 </span> <a href='010---vm.cc.html#L368'>dump_registers</a><span class="Delimiter">();</span> <span id="L302" class="LineNr">302 </span><span class="CommentedCode">//? dump_stack(); // for debugging; not defined until later layer</span> <span id="L303" class="LineNr">303 </span> <span class="Delimiter">}</span> -<span id="L304" class="LineNr">304 </span> <a href='003trace.cc.html#L183'>trace</a><span class="Delimiter">(</span><span class="Constant">90</span><span class="Delimiter">,</span> <span class="Constant">"run"</span><span class="Delimiter">)</span> << <span class="Constant">"inst: 0x"</span> << <a href='010---vm.cc.html#L413'>HEXWORD</a> << <a href='010---vm.cc.html#L29'>EIP</a> << end<span class="Delimiter">();</span> +<span id="L304" class="LineNr">304 </span> <a href='003trace.cc.html#L183'>trace</a><span class="Delimiter">(</span><span class="Constant">90</span><span class="Delimiter">,</span> <span class="Constant">"run"</span><span class="Delimiter">)</span> << <span class="Constant">"inst: 0x"</span> << <a href='010---vm.cc.html#L413'>HEXWORD</a> << EIP << end<span class="Delimiter">();</span> <span id="L305" class="LineNr">305 </span> op = <a href='010---vm.cc.html#L364'>next</a><span class="Delimiter">();</span> <span id="L306" class="LineNr">306 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><span class="Special"><a href='003trace.cc.html#L168'>Dump_trace</a></span><span class="Delimiter">)</span> cerr << <span class="Constant">"opcode: "</span> << <a href='010---vm.cc.html#L412'>HEXBYTE</a> << <a href='010---vm.cc.html#L415'>NUM</a><span class="Delimiter">(</span>op<span class="Delimiter">)</span> << <span class="cSpecial">'\n'</span><span class="Delimiter">;</span> <span id="L307" class="LineNr">307 </span> <span class="Normal">switch</span> <span class="Delimiter">(</span>op<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L308" class="LineNr">308 </span> <span class="Normal">case</span> <span class="Constant">0xf4</span>: <span class="Comment">// hlt</span> -<span id="L309" class="LineNr">309 </span> <a href='010---vm.cc.html#L29'>EIP</a> = <span class="Special"><a href='010---vm.cc.html#L194'>End_of_program</a></span><span class="Delimiter">;</span> +<span id="L309" class="LineNr">309 </span> EIP = <span class="Special"><a href='010---vm.cc.html#L194'>End_of_program</a></span><span class="Delimiter">;</span> <span id="L310" class="LineNr">310 </span> <span class="Identifier">break</span><span class="Delimiter">;</span> <span id="L311" class="LineNr">311 </span> <span class="Comment">// End Single-Byte Opcodes</span> <span id="L312" class="LineNr">312 </span> <span class="Normal">case</span> <span class="Constant">0x0f</span>: @@ -459,7 +459,7 @@ if ('onhashchange' in window) { <span id="L398" class="LineNr">398 </span> cerr << <span class="Constant">" f3 "</span> << p<span class="Delimiter">-></span>first << <span class="Constant">": "</span> << p<span class="Delimiter">-></span>second << <span class="cSpecial">'\n'</span><span class="Delimiter">;</span> <span id="L399" class="LineNr">399 </span> <span class="Normal">for</span> <span class="Delimiter">(</span>map<string<span class="Delimiter">,</span> string>::iterator p = <span class="Special"><a href='010---vm.cc.html#L381'>Name_f3_0f</a></span><span class="Delimiter">.</span>begin<span class="Delimiter">();</span> p != <span class="Special"><a href='010---vm.cc.html#L381'>Name_f3_0f</a></span><span class="Delimiter">.</span>end<span class="Delimiter">();</span> ++p<span class="Delimiter">)</span> <span id="L400" class="LineNr">400 </span> cerr << <span class="Constant">" f3 0f "</span> << p<span class="Delimiter">-></span>first << <span class="Constant">": "</span> << p<span class="Delimiter">-></span>second << <span class="cSpecial">'\n'</span><span class="Delimiter">;</span> -<span id="L401" class="LineNr">401 </span> cerr << <span class="Constant">"Run `subx help instructions` for details on <a href='011run.cc.html#L118'>words</a> like 'r32' and 'disp8'.\n"</span> +<span id="L401" class="LineNr">401 </span> cerr << <span class="Constant">"Run `subx help instructions` for details on <a href='011run.cc.html#L114'>words</a> like 'r32' and 'disp8'.\n"</span> <span id="L402" class="LineNr">402 </span> <span class="Constant">"For complete details on these instructions, consult the IA-32 manual (volume 2).\n"</span> <span id="L403" class="LineNr">403 </span> <span class="Constant">"There's various versions of it online, such as <a href="https://c9x.me/x86">https://c9x.me/x86</a>.\n"</span> <span id="L404" class="LineNr">404 </span> <span class="Constant">"The mnemonics in brackets will help you locate each instruction.\n"</span><span class="Delimiter">;</span> |