about summary refs log tree commit diff stats
path: root/svc
ModeNameSize
-rw-r--r--README.md193log stats plain blame
-rw-r--r--cache.go2863log stats plain blame
-rw-r--r--cache_test.go1521log stats plain blame
-rw-r--r--conf.go4797log stats plain blame
-rw-r--r--conf_test.go429log stats plain blame
-rw-r--r--db.go878log stats plain blame
-rw-r--r--db_test.go2079log stats plain blame
-rw-r--r--go.mod2329log stats plain blame
-rw-r--r--go.sum28264log stats plain blame
-rw-r--r--handlers.go4630log stats plain blame
-rw-r--r--handlers_test.go5494log stats plain blame
-rw-r--r--help.go9083log stats plain blame
-rw-r--r--http.go2124log stats plain blame
-rw-r--r--init.go2770log stats plain blame
-rw-r--r--init_test.go2713log stats plain blame
-rw-r--r--leveldb.go2276log stats plain blame
-rw-r--r--post.go1850log stats plain blame
-rw-r--r--post_test.go1579log stats plain blame
-rw-r--r--query.go3441log stats plain blame
-rw-r--r--query_test.go2679log stats plain blame
-rw-r--r--sqlite.go3184log stats plain blame
-rw-r--r--svc.go3723log stats plain blame
402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Mu - linux/bootstrap/017jump_disp8.cc</title>
<meta name="Generator" content="Vim/8.2">
<meta name="plugin-version" content="vim8.1_v2">
<meta name="syntax" content="cpp">
<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
<meta name="colorscheme" content="minimal-light">
<style>
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffd7; }
body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
a { color:inherit; }
* { font-size:12pt; font-size: 1em; }
.cSpecial { color: #008000; }
.Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
.LineNr { }
.Constant { color: #008787; }
.Comment { color: #005faf; }
.Delimiter { color: #c000c0; }
.Identifier { color: #af5f00; }
-->
</style>

<script>
<!--

/* function to open any folds containing a jumped-to line before jumping to it */
function JumpToLine()
{
  var lineNum;
  lineNum = window.location.hash;
  lineNum = lineNum.substr(1); /* strip off '#' */

  if (lineNum.indexOf('L') == -1) {
    lineNum = 'L'+lineNum;
  }
  var lineElem = document.getElementById(lineNum);
  /* Always jump to new location even if the line was hidden inside a fold, or
   * we corrected the raw number to a line ID.
   */
  if (lineElem) {
    lineElem.scrollIntoView(true);
  }
  return true;
}
if ('onhashchange' in window) {
  window.onhashchange = JumpToLine;
}

-->
</script>
</head>
<body onload='JumpToLine();'>
<a href='https://github.com/akkartik/mu/blob/main/linux/bootstrap/017jump_disp8.cc'>https://github.com/akkartik/mu/blob/main/linux/bootstrap/017jump_disp8.cc</a>
<pre id='vimCodeElement'>
<span id="L1" class="LineNr">  1 </span><span class="Comment">//: jump to 8-bit offset</span>
<span id="L2" class="LineNr">  2 </span>
<span id="L3" class="LineNr">  3 </span><span class="Comment">//:: jump</span>
<span id="L4" class="LineNr">  4 </span>
<span id="L5" class="LineNr">  5 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L6" class="LineNr">  6 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;eb&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away (jmp)&quot;</span><span class="Delimiter">);</span>
<span id="L7" class="LineNr">  7 </span>
<span id="L8" class="LineNr">  8 </span><span class="Delimiter">:(code)</span>
<span id="L9" class="LineNr">  9 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L9'>test_jump_disp8</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L10" class="LineNr"> 10 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L11" class="LineNr"> 11 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L12" class="LineNr"> 12 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L13" class="LineNr"> 13 </span>      <span class="Constant">&quot;  eb                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L14" class="LineNr"> 14 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L15" class="LineNr"> 15 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L16" class="LineNr"> 16 </span>  <span class="Delimiter">);</span>
<span id="L17" class="LineNr"> 17 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L18" class="LineNr"> 18 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: eb</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L19" class="LineNr"> 19 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L20" class="LineNr"> 20 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L21" class="LineNr"> 21 </span>  <span class="Delimiter">);</span>
<span id="L22" class="LineNr"> 22 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L23" class="LineNr"> 23 </span><span class="Delimiter">}</span>
<span id="L24" class="LineNr"> 24 </span>
<span id="L25" class="LineNr"> 25 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L26" class="LineNr"> 26 </span><span class="Normal">case</span> <span class="Constant">0xeb</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8</span>
<span id="L27" class="LineNr"> 27 </span>  <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L28" class="LineNr"> 28 </span>  <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L29" class="LineNr"> 29 </span>  <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L30" class="LineNr"> 30 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L31" class="LineNr"> 31 </span><span class="Delimiter">}</span>
<span id="L32" class="LineNr"> 32 </span>
<span id="L33" class="LineNr"> 33 </span><span class="Comment">//:: jump if equal/zero</span>
<span id="L34" class="LineNr"> 34 </span>
<span id="L35" class="LineNr"> 35 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L36" class="LineNr"> 36 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;74&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if equal, if <a href='010vm.cc.html#L89'>ZF</a> is set (jcc/jz/je)&quot;</span><span class="Delimiter">);</span>
<span id="L37" class="LineNr"> 37 </span>
<span id="L38" class="LineNr"> 38 </span><span class="Delimiter">:(code)</span>
<span id="L39" class="LineNr"> 39 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L39'>test_je_disp8_success</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L40" class="LineNr"> 40 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L41" class="LineNr"> 41 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L42" class="LineNr"> 42 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L43" class="LineNr"> 43 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L44" class="LineNr"> 44 </span>      <span class="Constant">&quot;  74                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L45" class="LineNr"> 45 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L46" class="LineNr"> 46 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L47" class="LineNr"> 47 </span>  <span class="Delimiter">);</span>
<span id="L48" class="LineNr"> 48 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L49" class="LineNr"> 49 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 74</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L50" class="LineNr"> 50 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L51" class="LineNr"> 51 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L52" class="LineNr"> 52 </span>  <span class="Delimiter">);</span>
<span id="L53" class="LineNr"> 53 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L54" class="LineNr"> 54 </span><span class="Delimiter">}</span>
<span id="L55" class="LineNr"> 55 </span>
<span id="L56" class="LineNr"> 56 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L57" class="LineNr"> 57 </span><span class="Normal">case</span> <span class="Constant">0x74</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if ZF</span>
<span id="L58" class="LineNr"> 58 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L59" class="LineNr"> 59 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='010vm.cc.html#L89'>ZF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L60" class="LineNr"> 60 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L61" class="LineNr"> 61 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L62" class="LineNr"> 62 </span>  <span class="Delimiter">}</span>
<span id="L63" class="LineNr"> 63 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L64" class="LineNr"> 64 </span><span class="Delimiter">}</span>
<span id="L65" class="LineNr"> 65 </span>
<span id="L66" class="LineNr"> 66 </span><span class="Delimiter">:(code)</span>
<span id="L67" class="LineNr"> 67 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L67'>test_je_disp8_fail</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L68" class="LineNr"> 68 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L69" class="LineNr"> 69 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L70" class="LineNr"> 70 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L71" class="LineNr"> 71 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L72" class="LineNr"> 72 </span>      <span class="Constant">&quot;  74                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L73" class="LineNr"> 73 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L74" class="LineNr"> 74 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L75" class="LineNr"> 75 </span>  <span class="Delimiter">);</span>
<span id="L76" class="LineNr"> 76 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L77" class="LineNr"> 77 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 74</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L78" class="LineNr"> 78 </span>      <span class="Constant">&quot;run: 0x00000003 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L79" class="LineNr"> 79 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L80" class="LineNr"> 80 </span>  <span class="Delimiter">);</span>
<span id="L81" class="LineNr"> 81 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: jump 5&quot;</span><span class="Delimiter">);</span>
<span id="L82" class="LineNr"> 82 </span><span class="Delimiter">}</span>
<span id="L83" class="LineNr"> 83 </span>
<span id="L84" class="LineNr"> 84 </span><span class="Comment">//:: jump if not equal/not zero</span>
<span id="L85" class="LineNr"> 85 </span>
<span id="L86" class="LineNr"> 86 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L87" class="LineNr"> 87 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;75&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if not equal, if <a href='010vm.cc.html#L89'>ZF</a> is not set (jcc/jnz/jne)&quot;</span><span class="Delimiter">);</span>
<span id="L88" class="LineNr"> 88 </span>
<span id="L89" class="LineNr"> 89 </span><span class="Delimiter">:(code)</span>
<span id="L90" class="LineNr"> 90 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L90'>test_jne_disp8_success</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L91" class="LineNr"> 91 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L92" class="LineNr"> 92 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L93" class="LineNr"> 93 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L94" class="LineNr"> 94 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L95" class="LineNr"> 95 </span>      <span class="Constant">&quot;  75                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L96" class="LineNr"> 96 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L97" class="LineNr"> 97 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L98" class="LineNr"> 98 </span>  <span class="Delimiter">);</span>
<span id="L99" class="LineNr"> 99 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L100" class="LineNr">100 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 75</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L101" class="LineNr">101 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L102" class="LineNr">102 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L103" class="LineNr">103 </span>  <span class="Delimiter">);</span>
<span id="L104" class="LineNr">104 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L105" class="LineNr">105 </span><span class="Delimiter">}</span>
<span id="L106" class="LineNr">106 </span>
<span id="L107" class="LineNr">107 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L108" class="LineNr">108 </span><span class="Normal">case</span> <span class="Constant">0x75</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if !ZF</span>
<span id="L109" class="LineNr">109 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L110" class="LineNr">110 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>!ZF<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L111" class="LineNr">111 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L112" class="LineNr">112 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L113" class="LineNr">113 </span>  <span class="Delimiter">}</span>
<span id="L114" class="LineNr">114 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L115" class="LineNr">115 </span><span class="Delimiter">}</span>
<span id="L116" class="LineNr">116 </span>
<span id="L117" class="LineNr">117 </span><span class="Delimiter">:(code)</span>
<span id="L118" class="LineNr">118 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L118'>test_jne_disp8_fail</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L119" class="LineNr">119 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L120" class="LineNr">120 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L121" class="LineNr">121 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L122" class="LineNr">122 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L123" class="LineNr">123 </span>      <span class="Constant">&quot;  75                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L124" class="LineNr">124 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L125" class="LineNr">125 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L126" class="LineNr">126 </span>  <span class="Delimiter">);</span>
<span id="L127" class="LineNr">127 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L128" class="LineNr">128 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 75</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L129" class="LineNr">129 </span>      <span class="Constant">&quot;run: 0x00000003 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L130" class="LineNr">130 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L131" class="LineNr">131 </span>  <span class="Delimiter">);</span>
<span id="L132" class="LineNr">132 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: jump 5&quot;</span><span class="Delimiter">);</span>
<span id="L133" class="LineNr">133 </span><span class="Delimiter">}</span>
<span id="L134" class="LineNr">134 </span>
<span id="L135" class="LineNr">135 </span><span class="Comment">//:: jump if greater</span>
<span id="L136" class="LineNr">136 </span>
<span id="L137" class="LineNr">137 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L138" class="LineNr">138 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;7f&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if greater, if <a href='010vm.cc.html#L89'>ZF</a> is unset and SF == <a href='010vm.cc.html#L91'>OF</a> (jcc/jg/jnle)&quot;</span><span class="Delimiter">);</span>
<span id="L139" class="LineNr">139 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;77&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if greater (addr, float), if <a href='010vm.cc.html#L89'>ZF</a> is unset and <a href='010vm.cc.html#L90'>CF</a> is unset (jcc/ja/jnbe)&quot;</span><span class="Delimiter">);</span>
<span id="L140" class="LineNr">140 </span>
<span id="L141" class="LineNr">141 </span><span class="Delimiter">:(code)</span>
<span id="L142" class="LineNr">142 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L142'>test_jg_disp8_success</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L143" class="LineNr">143 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L144" class="LineNr">144 </span>  SF = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L145" class="LineNr">145 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L146" class="LineNr">146 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L147" class="LineNr">147 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L148" class="LineNr">148 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L149" class="LineNr">149 </span>      <span class="Constant">&quot;  7f                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L150" class="LineNr">150 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L151" class="LineNr">151 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L152" class="LineNr">152 </span>  <span class="Delimiter">);</span>
<span id="L153" class="LineNr">153 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L154" class="LineNr">154 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7f</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L155" class="LineNr">155 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L156" class="LineNr">156 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L157" class="LineNr">157 </span>  <span class="Delimiter">);</span>
<span id="L158" class="LineNr">158 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L159" class="LineNr">159 </span><span class="Delimiter">}</span>
<span id="L160" class="LineNr">160 </span>
<span id="L161" class="LineNr">161 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L162" class="LineNr">162 </span><span class="Normal">case</span> <span class="Constant">0x7f</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if SF == OF and !ZF</span>
<span id="L163" class="LineNr">163 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L164" class="LineNr">164 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>SF == <a href='010vm.cc.html#L91'>OF</a> &amp;&amp; !ZF<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L165" class="LineNr">165 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L166" class="LineNr">166 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L167" class="LineNr">167 </span>  <span class="Delimiter">}</span>
<span id="L168" class="LineNr">168 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L169" class="LineNr">169 </span><span class="Delimiter">}</span>
<span id="L170" class="LineNr">170 </span><span class="Normal">case</span> <span class="Constant">0x77</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if !CF and !ZF</span>
<span id="L171" class="LineNr">171 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L172" class="LineNr">172 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>!CF &amp;&amp; !ZF<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L173" class="LineNr">173 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L174" class="LineNr">174 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L175" class="LineNr">175 </span>  <span class="Delimiter">}</span>
<span id="L176" class="LineNr">176 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L177" class="LineNr">177 </span><span class="Delimiter">}</span>
<span id="L178" class="LineNr">178 </span>
<span id="L179" class="LineNr">179 </span><span class="Delimiter">:(code)</span>
<span id="L180" class="LineNr">180 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L180'>test_jg_disp8_fail</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L181" class="LineNr">181 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L182" class="LineNr">182 </span>  SF = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L183" class="LineNr">183 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L184" class="LineNr">184 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L185" class="LineNr">185 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L186" class="LineNr">186 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L187" class="LineNr">187 </span>      <span class="Constant">&quot;  7f                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L188" class="LineNr">188 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L189" class="LineNr">189 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L190" class="LineNr">190 </span>  <span class="Delimiter">);</span>
<span id="L191" class="LineNr">191 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L192" class="LineNr">192 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7f</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L193" class="LineNr">193 </span>      <span class="Constant">&quot;run: 0x00000003 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L194" class="LineNr">194 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L195" class="LineNr">195 </span>  <span class="Delimiter">);</span>
<span id="L196" class="LineNr">196 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: jump 5&quot;</span><span class="Delimiter">);</span>
<span id="L197" class="LineNr">197 </span><span class="Delimiter">}</span>
<span id="L198" class="LineNr">198 </span>
<span id="L199" class="LineNr">199 </span><span class="Comment">//:: jump if greater or equal</span>
<span id="L200" class="LineNr">200 </span>
<span id="L201" class="LineNr">201 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L202" class="LineNr">202 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;7d&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if greater or equal, if SF == <a href='010vm.cc.html#L91'>OF</a> (jcc/jge/jnl)&quot;</span><span class="Delimiter">);</span>
<span id="L203" class="LineNr">203 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;73&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if greater or equal (addr, float), if <a href='010vm.cc.html#L90'>CF</a> is unset (jcc/jae/jnb)&quot;</span><span class="Delimiter">);</span>
<span id="L204" class="LineNr">204 </span>
<span id="L205" class="LineNr">205 </span><span class="Delimiter">:(code)</span>
<span id="L206" class="LineNr">206 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L206'>test_jge_disp8_success</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L207" class="LineNr">207 </span>  SF = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L208" class="LineNr">208 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L209" class="LineNr">209 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L210" class="LineNr">210 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L211" class="LineNr">211 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L212" class="LineNr">212 </span>      <span class="Constant">&quot;  7d                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L213" class="LineNr">213 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L214" class="LineNr">214 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L215" class="LineNr">215 </span>  <span class="Delimiter">);</span>
<span id="L216" class="LineNr">216 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L217" class="LineNr">217 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7d</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L218" class="LineNr">218 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L219" class="LineNr">219 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L220" class="LineNr">220 </span>  <span class="Delimiter">);</span>
<span id="L221" class="LineNr">221 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L222" class="LineNr">222 </span><span class="Delimiter">}</span>
<span id="L223" class="LineNr">223 </span>
<span id="L224" class="LineNr">224 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L225" class="LineNr">225 </span><span class="Normal">case</span> <span class="Constant">0x7d</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if SF == OF</span>
<span id="L226" class="LineNr">226 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L227" class="LineNr">227 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>SF == <a href='010vm.cc.html#L91'>OF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L228" class="LineNr">228 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L229" class="LineNr">229 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L230" class="LineNr">230 </span>  <span class="Delimiter">}</span>
<span id="L231" class="LineNr">231 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L232" class="LineNr">232 </span><span class="Delimiter">}</span>
<span id="L233" class="LineNr">233 </span><span class="Normal">case</span> <span class="Constant">0x73</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if !CF</span>
<span id="L234" class="LineNr">234 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L235" class="LineNr">235 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>!CF<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L236" class="LineNr">236 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L237" class="LineNr">237 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L238" class="LineNr">238 </span>  <span class="Delimiter">}</span>
<span id="L239" class="LineNr">239 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L240" class="LineNr">240 </span><span class="Delimiter">}</span>
<span id="L241" class="LineNr">241 </span>
<span id="L242" class="LineNr">242 </span><span class="Delimiter">:(code)</span>
<span id="L243" class="LineNr">243 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L243'>test_jge_disp8_fail</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L244" class="LineNr">244 </span>  SF = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L245" class="LineNr">245 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L246" class="LineNr">246 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L247" class="LineNr">247 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L248" class="LineNr">248 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L249" class="LineNr">249 </span>      <span class="Constant">&quot;  7d                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L250" class="LineNr">250 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L251" class="LineNr">251 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L252" class="LineNr">252 </span>  <span class="Delimiter">);</span>
<span id="L253" class="LineNr">253 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L254" class="LineNr">254 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7d</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L255" class="LineNr">255 </span>      <span class="Constant">&quot;run: 0x00000003 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L256" class="LineNr">256 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L257" class="LineNr">257 </span>  <span class="Delimiter">);</span>
<span id="L258" class="LineNr">258 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: jump 5&quot;</span><span class="Delimiter">);</span>
<span id="L259" class="LineNr">259 </span><span class="Delimiter">}</span>
<span id="L260" class="LineNr">260 </span>
<span id="L261" class="LineNr">261 </span><span class="Comment">//:: jump if lesser</span>
<span id="L262" class="LineNr">262 </span>
<span id="L263" class="LineNr">263 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L264" class="LineNr">264 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;7c&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if lesser, if SF != <a href='010vm.cc.html#L91'>OF</a> (jcc/jl/jnge)&quot;</span><span class="Delimiter">);</span>
<span id="L265" class="LineNr">265 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;72&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if lesser (addr, float), if <a href='010vm.cc.html#L90'>CF</a> is set (jcc/jb/jnae)&quot;</span><span class="Delimiter">);</span>
<span id="L266" class="LineNr">266 </span>
<span id="L267" class="LineNr">267 </span><span class="Delimiter">:(code)</span>
<span id="L268" class="LineNr">268 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L268'>test_jl_disp8_success</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L269" class="LineNr">269 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L270" class="LineNr">270 </span>  SF = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L271" class="LineNr">271 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L272" class="LineNr">272 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L273" class="LineNr">273 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L274" class="LineNr">274 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L275" class="LineNr">275 </span>      <span class="Constant">&quot;  7c                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L276" class="LineNr">276 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L277" class="LineNr">277 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L278" class="LineNr">278 </span>  <span class="Delimiter">);</span>
<span id="L279" class="LineNr">279 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L280" class="LineNr">280 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7c</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L281" class="LineNr">281 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L282" class="LineNr">282 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L283" class="LineNr">283 </span>  <span class="Delimiter">);</span>
<span id="L284" class="LineNr">284 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L285" class="LineNr">285 </span><span class="Delimiter">}</span>
<span id="L286" class="LineNr">286 </span>
<span id="L287" class="LineNr">287 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L288" class="LineNr">288 </span><span class="Normal">case</span> <span class="Constant">0x7c</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if SF != OF</span>
<span id="L289" class="LineNr">289 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L290" class="LineNr">290 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>SF != <a href='010vm.cc.html#L91'>OF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L291" class="LineNr">291 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L292" class="LineNr">292 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L293" class="LineNr">293 </span>  <span class="Delimiter">}</span>
<span id="L294" class="LineNr">294 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L295" class="LineNr">295 </span><span class="Delimiter">}</span>
<span id="L296" class="LineNr">296 </span><span class="Normal">case</span> <span class="Constant">0x72</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if CF</span>
<span id="L297" class="LineNr">297 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L298" class="LineNr">298 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='010vm.cc.html#L90'>CF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L299" class="LineNr">299 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L300" class="LineNr">300 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L301" class="LineNr">301 </span>  <span class="Delimiter">}</span>
<span id="L302" class="LineNr">302 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L303" class="LineNr">303 </span><span class="Delimiter">}</span>
<span id="L304" class="LineNr">304 </span>
<span id="L305" class="LineNr">305 </span><span class="Delimiter">:(code)</span>
<span id="L306" class="LineNr">306 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L306'>test_jl_disp8_fail</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L307" class="LineNr">307 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L308" class="LineNr">308 </span>  SF = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L309" class="LineNr">309 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L310" class="LineNr">310 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L311" class="LineNr">311 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L312" class="LineNr">312 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L313" class="LineNr">313 </span>      <span class="Constant">&quot;  7c                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L314" class="LineNr">314 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L315" class="LineNr">315 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L316" class="LineNr">316 </span>  <span class="Delimiter">);</span>
<span id="L317" class="LineNr">317 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L318" class="LineNr">318 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7c</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L319" class="LineNr">319 </span>      <span class="Constant">&quot;run: 0x00000003 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L320" class="LineNr">320 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L321" class="LineNr">321 </span>  <span class="Delimiter">);</span>
<span id="L322" class="LineNr">322 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: jump 5&quot;</span><span class="Delimiter">);</span>
<span id="L323" class="LineNr">323 </span><span class="Delimiter">}</span>
<span id="L324" class="LineNr">324 </span>
<span id="L325" class="LineNr">325 </span><span class="Comment">//:: jump if lesser or equal</span>
<span id="L326" class="LineNr">326 </span>
<span id="L327" class="LineNr">327 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L328" class="LineNr">328 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;7e&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if lesser or equal, if <a href='010vm.cc.html#L89'>ZF</a> is set or SF != <a href='010vm.cc.html#L91'>OF</a> (jcc/jle/jng)&quot;</span><span class="Delimiter">);</span>
<span id="L329" class="LineNr">329 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;76&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if lesser or equal (addr, float), if <a href='010vm.cc.html#L89'>ZF</a> is set or <a href='010vm.cc.html#L90'>CF</a> is set (jcc/jbe/jna)&quot;</span><span class="Delimiter">);</span>
<span id="L330" class="LineNr">330 </span>
<span id="L331" class="LineNr">331 </span><span class="Delimiter">:(code)</span>
<span id="L332" class="LineNr">332 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L332'>test_jle_disp8_equal</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L333" class="LineNr">333 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L334" class="LineNr">334 </span>  SF = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L335" class="LineNr">335 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L336" class="LineNr">336 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L337" class="LineNr">337 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L338" class="LineNr">338 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L339" class="LineNr">339 </span>      <span class="Constant">&quot;  7e                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L340" class="LineNr">340 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L341" class="LineNr">341 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L342" class="LineNr">342 </span>  <span class="Delimiter">);</span>
<span id="L343" class="LineNr">343 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L344" class="LineNr">344 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7e</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L345" class="LineNr">345 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L346" class="LineNr">346 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L347" class="LineNr">347 </span>  <span class="Delimiter">);</span>
<span id="L348" class="LineNr">348 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L349" class="LineNr">349 </span><span class="Delimiter">}</span>
<span id="L350" class="LineNr">350 </span>
<span id="L351" class="LineNr">351 </span><span class="Delimiter">:(code)</span>
<span id="L352" class="LineNr">352 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L352'>test_jle_disp8_lesser</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L353" class="LineNr">353 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L354" class="LineNr">354 </span>  SF = <span class="Constant">true</span><span class="Delimiter">;</span>
<span id="L355" class="LineNr">355 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L356" class="LineNr">356 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L357" class="LineNr">357 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L358" class="LineNr">358 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L359" class="LineNr">359 </span>      <span class="Constant">&quot;  7e                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L360" class="LineNr">360 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L361" class="LineNr">361 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L362" class="LineNr">362 </span>  <span class="Delimiter">);</span>
<span id="L363" class="LineNr">363 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L364" class="LineNr">364 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7e</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L365" class="LineNr">365 </span>      <span class="Constant">&quot;run: jump 5</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L366" class="LineNr">366 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L367" class="LineNr">367 </span>  <span class="Delimiter">);</span>
<span id="L368" class="LineNr">368 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: 0x00000003 opcode: 05&quot;</span><span class="Delimiter">);</span>
<span id="L369" class="LineNr">369 </span><span class="Delimiter">}</span>
<span id="L370" class="LineNr">370 </span>
<span id="L371" class="LineNr">371 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L372" class="LineNr">372 </span><span class="Normal">case</span> <span class="Constant">0x7e</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if ZF or SF != OF</span>
<span id="L373" class="LineNr">373 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L374" class="LineNr">374 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='010vm.cc.html#L89'>ZF</a> || SF != <a href='010vm.cc.html#L91'>OF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L375" class="LineNr">375 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L376" class="LineNr">376 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L377" class="LineNr">377 </span>  <span class="Delimiter">}</span>
<span id="L378" class="LineNr">378 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L379" class="LineNr">379 </span><span class="Delimiter">}</span>
<span id="L380" class="LineNr">380 </span><span class="Normal">case</span> <span class="Constant">0x76</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if ZF or CF</span>
<span id="L381" class="LineNr">381 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L382" class="LineNr">382 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='010vm.cc.html#L89'>ZF</a> || <a href='010vm.cc.html#L90'>CF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L383" class="LineNr">383 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L384" class="LineNr">384 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L385" class="LineNr">385 </span>  <span class="Delimiter">}</span>
<span id="L386" class="LineNr">386 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L387" class="LineNr">387 </span><span class="Delimiter">}</span>
<span id="L388" class="LineNr">388 </span>
<span id="L389" class="LineNr">389 </span><span class="Delimiter">:(code)</span>
<span id="L390" class="LineNr">390 </span><span class="Normal">void</span> <a href='017jump_disp8.cc.html#L390'>test_jle_disp8_greater</a><span class="Delimiter">()</span> <span class="Delimiter">{</span>
<span id="L391" class="LineNr">391 </span>  <a href='010vm.cc.html#L89'>ZF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L392" class="LineNr">392 </span>  SF = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L393" class="LineNr">393 </span>  <a href='010vm.cc.html#L91'>OF</a> = <span class="Constant">false</span><span class="Delimiter">;</span>
<span id="L394" class="LineNr">394 </span>  <a href='011run.cc.html#L82'>run</a><span class="Delimiter">(</span>
<span id="L395" class="LineNr">395 </span>      <span class="Constant">&quot;== code 0x1</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L396" class="LineNr">396 </span>      <span class="Comment">// op     ModR/M  SIB   displacement  immediate</span>
<span id="L397" class="LineNr">397 </span>      <span class="Constant">&quot;  7e                   05                        </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>  <span class="Comment">// skip 1 instruction</span>
<span id="L398" class="LineNr">398 </span>      <span class="Constant">&quot;  05                                 00 00 00 01 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L399" class="LineNr">399 </span>      <span class="Constant">&quot;  05                                 00 00 00 02 </span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L400" class="LineNr">400 </span>  <span class="Delimiter">);</span>
<span id="L401" class="LineNr">401 </span>  <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span>
<span id="L402" class="LineNr">402 </span>      <span class="Constant">&quot;run: 0x00000001 opcode: 7e</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L403" class="LineNr">403 </span>      <span class="Constant">&quot;run: 0x00000003 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L404" class="LineNr">404 </span>      <span class="Constant">&quot;run: 0x00000008 opcode: 05</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span>
<span id="L405" class="LineNr">405 </span>  <span class="Delimiter">);</span>
<span id="L406" class="LineNr">406 </span>  <a href='003trace.cc.html#L292'>CHECK_TRACE_DOESNT_CONTAIN</a><span class="Delimiter">(</span><span class="Constant">&quot;run: jump 5&quot;</span><span class="Delimiter">);</span>
<span id="L407" class="LineNr">407 </span><span class="Delimiter">}</span>
<span id="L408" class="LineNr">408 </span>
<span id="L409" class="LineNr">409 </span><span class="Comment">//:: jump if overflow</span>
<span id="L410" class="LineNr">410 </span>
<span id="L411" class="LineNr">411 </span><span class="Delimiter">:(before &quot;End Initialize Op Names&quot;)</span>
<span id="L412" class="LineNr">412 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;70&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if <a href='010vm.cc.html#L91'>OF</a> is set (jcc/jo)&quot;</span><span class="Delimiter">);</span>
<span id="L413" class="LineNr">413 </span><a href='001help.cc.html#L237'>put_new</a><span class="Delimiter">(</span><a href='010vm.cc.html#L355'>Name</a><span class="Delimiter">,</span> <span class="Constant">&quot;71&quot;</span><span class="Delimiter">,</span> <span class="Constant">&quot;jump disp8 bytes away if <a href='010vm.cc.html#L91'>OF</a> is unset (jcc/jno)&quot;</span><span class="Delimiter">);</span>
<span id="L414" class="LineNr">414 </span>
<span id="L415" class="LineNr">415 </span><span class="Delimiter">:(before &quot;End Single-Byte Opcodes&quot;)</span>
<span id="L416" class="LineNr">416 </span><span class="Normal">case</span> <span class="Constant">0x70</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if OF is set</span>
<span id="L417" class="LineNr">417 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L418" class="LineNr">418 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span><a href='010vm.cc.html#L91'>OF</a><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L419" class="LineNr">419 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L420" class="LineNr">420 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L421" class="LineNr">421 </span>  <span class="Delimiter">}</span>
<span id="L422" class="LineNr">422 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L423" class="LineNr">423 </span><span class="Delimiter">}</span>
<span id="L424" class="LineNr">424 </span><span class="Normal">case</span> <span class="Constant">0x71</span>: <span class="Delimiter">{</span>  <span class="Comment">// jump disp8 if OF is unset</span>
<span id="L425" class="LineNr">425 </span>  <span class="Normal">const</span> <span class="Normal">int8_t</span> offset = <span class="Normal">static_cast</span>&lt;<span class="Normal">int</span>&gt;<span class="Delimiter">(</span><a href='010vm.cc.html#L338'>next</a><span class="Delimiter">());</span>
<span id="L426" class="LineNr">426 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>!OF<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L427" class="LineNr">427 </span>    <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span>Callstack_depth+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">&quot;run&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;jump &quot;</span> &lt;&lt; <a href='010vm.cc.html#L410'>NUM</a><span class="Delimiter">(</span>offset<span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
<span id="L428" class="LineNr">428 </span>    <a href='010vm.cc.html#L26'>EIP</a> += offset<span class="Delimiter">;</span>
<span id="L429" class="LineNr">429 </span>  <span class="Delimiter">}</span>
<span id="L430" class="LineNr">430 </span>  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span id="L431" class="LineNr">431 </span><span class="Delimiter">}</span>
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->