diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-09-26 10:48:44 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-09-26 10:48:44 -0700 |
commit | 7e274cf2be2afcd54b187a3184b5aefe79ebf0c9 (patch) | |
tree | 4196eddb28953c4ecbecdd48df0282d27c6a5c8d /html/subx/030---operands.cc.html | |
parent | d7d0546f22893e8cbe84a734e2f349af62af634b (diff) | |
download | mu-7e274cf2be2afcd54b187a3184b5aefe79ebf0c9.tar.gz |
4520
Diffstat (limited to 'html/subx/030---operands.cc.html')
-rw-r--r-- | html/subx/030---operands.cc.html | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/html/subx/030---operands.cc.html b/html/subx/030---operands.cc.html index 0cd8748e..0129da0a 100644 --- a/html/subx/030---operands.cc.html +++ b/html/subx/030---operands.cc.html @@ -206,13 +206,13 @@ if ('onhashchange' in window) { <span id="L145" class="LineNr">145 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>p<span class="Delimiter">.</span><a href='011run.cc.html#L100'>segments</a><span class="Delimiter">.</span>empty<span class="Delimiter">())</span> <span class="Identifier">return</span><span class="Delimiter">;</span> <span id="L146" class="LineNr">146 </span> segment& <a href='031check_operands.cc.html#L14'>code</a> = p<span class="Delimiter">.</span><a href='011run.cc.html#L100'>segments</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span> <span id="L147" class="LineNr">147 </span> <span class="Comment">// Pack Operands(segment code)</span> -<span id="L148" class="LineNr">148 </span> <a href='003trace.cc.html#L196'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"-- pack operands"</span> << <a href='003trace.cc.html#L222'>end</a><span class="Delimiter">();</span> +<span id="L148" class="LineNr">148 </span> <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"-- pack operands"</span> << <a href='003trace.cc.html#L230'>end</a><span class="Delimiter">();</span> <span id="L149" class="LineNr">149 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span><a href='031check_operands.cc.html#L14'>code</a><span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">);</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L150" class="LineNr">150 </span> line& inst = <a href='031check_operands.cc.html#L14'>code</a><span class="Delimiter">.</span><a href='011run.cc.html#L109'>lines</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span> <span id="L151" class="LineNr">151 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>all_hex_bytes<span class="Delimiter">(</span>inst<span class="Delimiter">))</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> -<span id="L152" class="LineNr">152 </span> <a href='003trace.cc.html#L196'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"packing instruction '"</span> << to_string<span class="Delimiter">(</span><span class="Comment">/*</span><span class="Comment">with metadata</span><span class="Comment">*/</span>inst<span class="Delimiter">)</span> << <span class="Constant">"'"</span> << <a href='003trace.cc.html#L222'>end</a><span class="Delimiter">();</span> +<span id="L152" class="LineNr">152 </span> <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"packing instruction '"</span> << to_string<span class="Delimiter">(</span><span class="Comment">/*</span><span class="Comment">with metadata</span><span class="Comment">*/</span>inst<span class="Delimiter">)</span> << <span class="Constant">"'"</span> << <a href='003trace.cc.html#L230'>end</a><span class="Delimiter">();</span> <span id="L153" class="LineNr">153 </span> pack_operands<span class="Delimiter">(</span>inst<span class="Delimiter">);</span> -<span id="L154" class="LineNr">154 </span> <a href='003trace.cc.html#L196'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"instruction after packing: '"</span> << to_string<span class="Delimiter">(</span><span class="Comment">/*</span><span class="Comment">without metadata</span><span class="Comment">*/</span>inst<span class="Delimiter">.</span>words<span class="Delimiter">)</span> << <span class="Constant">"'"</span> << <a href='003trace.cc.html#L222'>end</a><span class="Delimiter">();</span> +<span id="L154" class="LineNr">154 </span> <a href='003trace.cc.html#L204'>trace</a><span class="Delimiter">(</span><span class="Constant">99</span><span class="Delimiter">,</span> <span class="Constant">"transform"</span><span class="Delimiter">)</span> << <span class="Constant">"instruction after packing: '"</span> << to_string<span class="Delimiter">(</span><span class="Comment">/*</span><span class="Comment">without metadata</span><span class="Comment">*/</span>inst<span class="Delimiter">.</span>words<span class="Delimiter">)</span> << <span class="Constant">"'"</span> << <a href='003trace.cc.html#L230'>end</a><span class="Delimiter">();</span> <span id="L155" class="LineNr">155 </span> <span class="Delimiter">}</span> <span id="L156" class="LineNr">156 </span><span class="Delimiter">}</span> <span id="L157" class="LineNr">157 </span> @@ -380,7 +380,7 @@ if ('onhashchange' in window) { <span id="L319" class="LineNr">319 </span> <a href='011run.cc.html#L99'>program</a> p<span class="Delimiter">;</span> <span id="L320" class="LineNr">320 </span> istringstream in<span class="Delimiter">(</span>text_bytes<span class="Delimiter">);</span> <span id="L321" class="LineNr">321 </span> <a href='011run.cc.html#L132'>parse</a><span class="Delimiter">(</span>in<span class="Delimiter">,</span> p<span class="Delimiter">);</span> -<span id="L322" class="LineNr">322 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='003trace.cc.html#L217'>trace_contains_errors</a><span class="Delimiter">())</span> <span class="Identifier">return</span><span class="Delimiter">;</span> +<span id="L322" class="LineNr">322 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='003trace.cc.html#L225'>trace_contains_errors</a><span class="Delimiter">())</span> <span class="Identifier">return</span><span class="Delimiter">;</span> <span id="L323" class="LineNr">323 </span> <a href='011run.cc.html#L209'>transform</a><span class="Delimiter">(</span>p<span class="Delimiter">);</span> <span id="L324" class="LineNr">324 </span><span class="Delimiter">}</span> <span id="L325" class="LineNr">325 </span> @@ -444,7 +444,7 @@ if ('onhashchange' in window) { <span id="L383" class="LineNr">383 </span> <span id="L384" class="LineNr">384 </span><span class="Normal">bool</span> <a href='030---operands.cc.html#L384'>contains_any_operand_metadata</a><span class="Delimiter">(</span><span class="Normal">const</span> word& <a href='011run.cc.html#L123'>word</a><span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L385" class="LineNr">385 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span><a href='011run.cc.html#L123'>word</a><span class="Delimiter">.</span>metadata<span class="Delimiter">);</span> ++i<span class="Delimiter">)</span> -<span id="L386" class="LineNr">386 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span>find<span class="Delimiter">(</span><a href='011run.cc.html#L123'>word</a><span class="Delimiter">.</span>metadata<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">))</span> != <a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span><a href='003trace.cc.html#L222'>end</a><span class="Delimiter">())</span> +<span id="L386" class="LineNr">386 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span>find<span class="Delimiter">(</span><a href='011run.cc.html#L123'>word</a><span class="Delimiter">.</span>metadata<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">))</span> != <a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span><a href='003trace.cc.html#L230'>end</a><span class="Delimiter">())</span> <span id="L387" class="LineNr">387 </span> <span class="Identifier">return</span><span class="Constant"> true</span><span class="Delimiter">;</span> <span id="L388" class="LineNr">388 </span> <span class="Identifier">return</span><span class="Constant"> false</span><span class="Delimiter">;</span> <span id="L389" class="LineNr">389 </span><span class="Delimiter">}</span> @@ -454,7 +454,7 @@ if ('onhashchange' in window) { <span id="L393" class="LineNr">393 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span>inst<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">);</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L394" class="LineNr">394 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>!has_operand_metadata<span class="Delimiter">(</span>inst<span class="Delimiter">.</span><a href='011run.cc.html#L118'>words</a><span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">),</span> m<span class="Delimiter">))</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> <span id="L395" class="LineNr">395 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>result<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L396" class="LineNr">396 </span> <a href='003trace.cc.html#L203'>raise</a> << <span class="Constant">"'"</span> << to_string<span class="Delimiter">(</span>inst<span class="Delimiter">)</span> << <span class="Constant">"' has conflicting "</span> << m << <span class="Constant">" operands</span><span class="cSpecial">\n</span><span class="Constant">"</span> << <a href='003trace.cc.html#L222'>end</a><span class="Delimiter">();</span> +<span id="L396" class="LineNr">396 </span> <a href='003trace.cc.html#L211'>raise</a> << <span class="Constant">"'"</span> << to_string<span class="Delimiter">(</span>inst<span class="Delimiter">)</span> << <span class="Constant">"' has conflicting "</span> << m << <span class="Constant">" operands</span><span class="cSpecial">\n</span><span class="Constant">"</span> << <a href='003trace.cc.html#L230'>end</a><span class="Delimiter">();</span> <span id="L397" class="LineNr">397 </span> <span class="Identifier">return</span><span class="Constant"> false</span><span class="Delimiter">;</span> <span id="L398" class="LineNr">398 </span> <span class="Delimiter">}</span> <span id="L399" class="LineNr">399 </span> result =<span class="Constant"> true</span><span class="Delimiter">;</span> @@ -467,9 +467,9 @@ if ('onhashchange' in window) { <span id="L406" class="LineNr">406 </span> <span class="Normal">bool</span> metadata_found =<span class="Constant"> false</span><span class="Delimiter">;</span> <span id="L407" class="LineNr">407 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span> i < <a href='001help.cc.html#L157'>SIZE</a><span class="Delimiter">(</span>w<span class="Delimiter">.</span>metadata<span class="Delimiter">);</span> ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L408" class="LineNr">408 </span> <span class="Normal">const</span> string& curr = w<span class="Delimiter">.</span>metadata<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span> -<span id="L409" class="LineNr">409 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span>find<span class="Delimiter">(</span>curr<span class="Delimiter">)</span> == <a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span><a href='003trace.cc.html#L222'>end</a><span class="Delimiter">())</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> <span class="Comment">// ignore unrecognized metadata</span> +<span id="L409" class="LineNr">409 </span> <span class="Normal">if</span> <span class="Delimiter">(</span><a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span>find<span class="Delimiter">(</span>curr<span class="Delimiter">)</span> == <a href='030---operands.cc.html#L43'>Instruction_operands</a><span class="Delimiter">.</span><a href='003trace.cc.html#L230'>end</a><span class="Delimiter">())</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> <span class="Comment">// ignore unrecognized metadata</span> <span id="L410" class="LineNr">410 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>metadata_found<span class="Delimiter">)</span> <span class="Delimiter">{</span> -<span id="L411" class="LineNr">411 </span> <a href='003trace.cc.html#L203'>raise</a> << <span class="Constant">"'"</span> << w<span class="Delimiter">.</span>original << <span class="Constant">"' has conflicting operand types; it should have only one</span><span class="cSpecial">\n</span><span class="Constant">"</span> << <a href='003trace.cc.html#L222'>end</a><span class="Delimiter">();</span> +<span id="L411" class="LineNr">411 </span> <a href='003trace.cc.html#L211'>raise</a> << <span class="Constant">"'"</span> << w<span class="Delimiter">.</span>original << <span class="Constant">"' has conflicting operand types; it should have only one</span><span class="cSpecial">\n</span><span class="Constant">"</span> << <a href='003trace.cc.html#L230'>end</a><span class="Delimiter">();</span> <span id="L412" class="LineNr">412 </span> <span class="Identifier">return</span><span class="Constant"> false</span><span class="Delimiter">;</span> <span id="L413" class="LineNr">413 </span> <span class="Delimiter">}</span> <span id="L414" class="LineNr">414 </span> metadata_found =<span class="Constant"> true</span><span class="Delimiter">;</span> |