<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="keywords" content="TEMU, dynamic analysis, binary analysis, dynamic
taint analysis"/>
<meta name="description" content="C/C++/OCaml Source Code Documentation for the TEMU Project."/>
<title>TEMU: xed-encoder-hl.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body>
<p class="title">TEMU: Dynamic Binary Analysis Platform</p>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_4f22f3fd3d3cce94a331ff7cdf0bf085.html">temu-1.0</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_3b6767f6be6ef802b0654406f3e74d86.html">shared</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_0277bd4601ee6c31034924754cae7495.html">xed2</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_05e0ad34a2706acb4f73624c38c2a107.html">xed2-ia32</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_f86fba19af9dbb3e8d51a2bdea785276.html">include</a>
  </div>
</div>
<div class="contents">
<h1>xed2-ia32/include/xed-encoder-hl.h</h1><a href="xed2-ia32_2include_2xed-encoder-hl_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*BEGIN_LEGAL </span>
<a name="l00002"></a>00002 <span class="comment">Intel Open Source License </span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">Copyright (c) 2002-2008 Intel Corporation </span>
<a name="l00005"></a>00005 <span class="comment">All rights reserved. </span>
<a name="l00006"></a>00006 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
<a name="l00007"></a>00007 <span class="comment">modification, are permitted provided that the following conditions are</span>
<a name="l00008"></a>00008 <span class="comment">met:</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment">Redistributions of source code must retain the above copyright notice,</span>
<a name="l00011"></a>00011 <span class="comment">this list of conditions and the following disclaimer.  Redistributions</span>
<a name="l00012"></a>00012 <span class="comment">in binary form must reproduce the above copyright notice, this list of</span>
<a name="l00013"></a>00013 <span class="comment">conditions and the following disclaimer in the documentation and/or</span>
<a name="l00014"></a>00014 <span class="comment">other materials provided with the distribution.  Neither the name of</span>
<a name="l00015"></a>00015 <span class="comment">the Intel Corporation nor the names of its contributors may be used to</span>
<a name="l00016"></a>00016 <span class="comment">endorse or promote products derived from this software without</span>
<a name="l00017"></a>00017 <span class="comment">specific prior written permission.</span>
<a name="l00018"></a>00018 <span class="comment"> </span>
<a name="l00019"></a>00019 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
<a name="l00020"></a>00020 <span class="comment">``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
<a name="l00021"></a>00021 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
<a name="l00022"></a>00022 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR</span>
<a name="l00023"></a>00023 <span class="comment">ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
<a name="l00024"></a>00024 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
<a name="l00025"></a>00025 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
<a name="l00026"></a>00026 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
<a name="l00027"></a>00027 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
<a name="l00028"></a>00028 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
<a name="l00029"></a>00029 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00030"></a>00030 <span class="comment">END_LEGAL */</span>
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#ifndef _XED_ENCODER_HL_H_</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor"># define _XED_ENCODER_HL_H_</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#include "xed-types.h"</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include "xed-reg-enum.h"</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "xed-state.h"</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include "xed-iclass-enum.h"</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include "xed-portability.h"</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include "xed-encode.h"</span>
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 
<a name="l00042"></a><a class="code" href="structxed__enc__displacement__t.html">00042</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00043"></a><a class="code" href="structxed__enc__displacement__t.html#c983d8e2ceacd11fce421ac110c65bd8">00043</a>     xed_uint64_t   displacement; 
<a name="l00044"></a><a class="code" href="structxed__enc__displacement__t.html#3fd0ffc7c9929f49bfc795fe01bf1798">00044</a>     xed_uint32_t   displacement_width;
<a name="l00045"></a>00045 } <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a>; <span class="comment">/* fixme bad name */</span>
<a name="l00046"></a>00046 <span class="comment"></span>
<a name="l00047"></a>00047 <span class="comment">/// @name Memory Displacement</span>
<a name="l00048"></a>00048 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00049"></a>00049 <span class="comment"></span><span class="comment">/// @ingroup ENCHL</span>
<a name="l00050"></a>00050 <span class="comment"></span><span class="comment">/// a memory displacement (not for branches)</span>
<a name="l00051"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#c8a806e9c0ba578adcb5aa2ee7cdb394">00051</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#c8a806e9c0ba578adcb5aa2ee7cdb394">xdisp</a>(xed_uint64_t   displacement,
<a name="l00052"></a>00052                                                 xed_uint32_t   displacement_width   ) {
<a name="l00053"></a>00053     <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> x;
<a name="l00054"></a>00054     x.<a class="code" href="structxed__enc__displacement__t.html#c983d8e2ceacd11fce421ac110c65bd8">displacement</a> = displacement;
<a name="l00055"></a>00055     x.<a class="code" href="structxed__enc__displacement__t.html#3fd0ffc7c9929f49bfc795fe01bf1798">displacement_width</a> = displacement_width;
<a name="l00056"></a>00056     <span class="keywordflow">return</span> x;
<a name="l00057"></a>00057 }<span class="comment"></span>
<a name="l00058"></a>00058 <span class="comment">//@}</span>
<a name="l00059"></a>00059 <span class="comment"></span>
<a name="l00060"></a><a class="code" href="structxed__memop__t.html">00060</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00061"></a><a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">00061</a>     <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg;
<a name="l00062"></a><a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">00062</a>     <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base;
<a name="l00063"></a><a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">00063</a>     <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> index;
<a name="l00064"></a><a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">00064</a>     xed_uint32_t   scale;
<a name="l00065"></a><a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">00065</a>     <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> disp;
<a name="l00066"></a>00066 } <a class="code" href="structxed__memop__t.html">xed_memop_t</a>;
<a name="l00067"></a>00067 
<a name="l00068"></a>00068 
<a name="l00069"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638">00069</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
<a name="l00070"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638cbc8d93653c02e76eac8d019f449d88b">00070</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638cbc8d93653c02e76eac8d019f449d88b">XED_ENCODER_OPERAND_TYPE_INVALID</a>,
<a name="l00071"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126383bea84e3495457e582cd5533b3b67b43">00071</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126383bea84e3495457e582cd5533b3b67b43">XED_ENCODER_OPERAND_TYPE_BRDISP</a>,
<a name="l00072"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638c7e137bec55ec1ebaf1b3269cbf8d35b">00072</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638c7e137bec55ec1ebaf1b3269cbf8d35b">XED_ENCODER_OPERAND_TYPE_REG</a>,
<a name="l00073"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638ec1aab94e9a39cad7281722d72f4c074">00073</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638ec1aab94e9a39cad7281722d72f4c074">XED_ENCODER_OPERAND_TYPE_IMM0</a>,
<a name="l00074"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126386010b70490d8deb87248988db4851991">00074</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126386010b70490d8deb87248988db4851991">XED_ENCODER_OPERAND_TYPE_SIMM0</a>,
<a name="l00075"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d1263839d2ecbd06732c86c9be27e5697513e4">00075</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d1263839d2ecbd06732c86c9be27e5697513e4">XED_ENCODER_OPERAND_TYPE_IMM1</a>,
<a name="l00076"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">00076</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>,
<a name="l00077"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638617ca23d3a043d05c07435199e768b88">00077</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638617ca23d3a043d05c07435199e768b88">XED_ENCODER_OPERAND_TYPE_PTR</a>,
<a name="l00078"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126385a7a43348b1552de102211c4d76ca72d">00078</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126385a7a43348b1552de102211c4d76ca72d">XED_ENCODER_OPERAND_TYPE_SEG0</a>,  <span class="comment">/* special for things with suppressed implicit memops */</span>
<a name="l00079"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638acd0df30646ec7115ac403e2dc7bf2ff">00079</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638acd0df30646ec7115ac403e2dc7bf2ff">XED_ENCODER_OPERAND_TYPE_SEG1</a>,  <span class="comment">/* special for things with suppressed implicit memops */</span>
<a name="l00080"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638263eeedf98d73a93dd619bc0b2359d79">00080</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638263eeedf98d73a93dd619bc0b2359d79">XED_ENCODER_OPERAND_TYPE_OTHER</a>  <span class="comment">/* specific operand storage fields -- must supply a name */</span>
<a name="l00081"></a>00081 } <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638">xed_encoder_operand_type_t</a>;
<a name="l00082"></a>00082 
<a name="l00083"></a><a class="code" href="structxed__encoder__operand__t.html">00083</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00084"></a><a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">00084</a>     <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638">xed_encoder_operand_type_t</a>  type;
<a name="l00085"></a>00085     <span class="keyword">union </span>{
<a name="l00086"></a><a class="code" href="structxed__encoder__operand__t.html#e5eeb0d5e528568c4335f3e1232b1c74">00086</a>         <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> reg;
<a name="l00087"></a><a class="code" href="structxed__encoder__operand__t.html#248b7401faf495144a60aed3e033de28">00087</a>         xed_int32_t brdisp;
<a name="l00088"></a><a class="code" href="structxed__encoder__operand__t.html#5dce7d3756139b85189dad3a9156c082">00088</a>         xed_uint64_t <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#e90462df43d77847591b28317121a7f0">imm0</a>;
<a name="l00089"></a><a class="code" href="structxed__encoder__operand__t.html#14f433f92d67d3bed1e912dfaec7478c">00089</a>         xed_uint8_t <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#c6d077d7c8bd6d603c46554caf4eac8b">imm1</a>;
<a name="l00090"></a>00090         <span class="keyword">struct </span>{
<a name="l00091"></a><a class="code" href="structxed__encoder__operand__t.html#82618f4d775f0f34a11ff4374bcb8ce7">00091</a>             <a class="code" href="xed2-ia32_2include_2xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a">xed_operand_enum_t</a> operand_name;
<a name="l00092"></a><a class="code" href="structxed__encoder__operand__t.html#676f6026a5ba7d95e2dd4ce2b730a48d">00092</a>             xed_uint32_t       value;
<a name="l00093"></a>00093         } s;
<a name="l00094"></a><a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">00094</a>         <a class="code" href="structxed__memop__t.html">xed_memop_t</a> mem;
<a name="l00095"></a>00095     } u;
<a name="l00096"></a><a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">00096</a>     xed_uint32_t width;
<a name="l00097"></a>00097 } <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a>;
<a name="l00098"></a>00098 <span class="comment"></span>
<a name="l00099"></a>00099 <span class="comment">/// @name Branch Displacement</span>
<a name="l00100"></a>00100 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00101"></a>00101 <span class="comment"></span><span class="comment">/// @ingroup ENCHL</span>
<a name="l00102"></a>00102 <span class="comment"></span><span class="comment">/// a relative branch displacement operand</span>
<a name="l00103"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#cdb37097d0759178bb58ed9a09def08d">00103</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#cdb37097d0759178bb58ed9a09def08d">xrelbr</a>(xed_int32_t brdisp, <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00104"></a>00104     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00105"></a>00105     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126383bea84e3495457e582cd5533b3b67b43">XED_ENCODER_OPERAND_TYPE_BRDISP</a>;
<a name="l00106"></a>00106     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#248b7401faf495144a60aed3e033de28">brdisp</a> = brdisp;
<a name="l00107"></a>00107     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00108"></a>00108     <span class="keywordflow">return</span> o;
<a name="l00109"></a>00109 }<span class="comment"></span>
<a name="l00110"></a>00110 <span class="comment">//@}</span>
<a name="l00111"></a>00111 <span class="comment"></span><span class="comment"></span>
<a name="l00112"></a>00112 <span class="comment">/// @name Pointer Displacement</span>
<a name="l00113"></a>00113 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00114"></a>00114 <span class="comment"></span><span class="comment">/// @ingroup ENCHL</span>
<a name="l00115"></a>00115 <span class="comment"></span><span class="comment">/// a relative displacement for a PTR operand  -- the subsequent imm0 holds the 16b selector</span>
<a name="l00116"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#ba429e1d2123dacf780e53c57b743ff6">00116</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#ba429e1d2123dacf780e53c57b743ff6">xptr</a>(xed_int32_t brdisp, <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00117"></a>00117     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00118"></a>00118     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638617ca23d3a043d05c07435199e768b88">XED_ENCODER_OPERAND_TYPE_PTR</a>;
<a name="l00119"></a>00119     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#248b7401faf495144a60aed3e033de28">brdisp</a> = brdisp;
<a name="l00120"></a>00120     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00121"></a>00121     <span class="keywordflow">return</span> o;
<a name="l00122"></a>00122 }<span class="comment"></span>
<a name="l00123"></a>00123 <span class="comment">//@}</span>
<a name="l00124"></a>00124 <span class="comment"></span><span class="comment"></span>
<a name="l00125"></a>00125 <span class="comment">/// @name Register and Immmediate Operands</span>
<a name="l00126"></a>00126 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00127"></a>00127 <span class="comment"></span><span class="comment">/// @ingroup ENCHL</span>
<a name="l00128"></a>00128 <span class="comment"></span><span class="comment">/// a register operand</span>
<a name="l00129"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#3ebdabca7dc139c49b31bcc86635298e">00129</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#3ebdabca7dc139c49b31bcc86635298e">xreg</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> reg) {
<a name="l00130"></a>00130     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00131"></a>00131     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638c7e137bec55ec1ebaf1b3269cbf8d35b">XED_ENCODER_OPERAND_TYPE_REG</a>;
<a name="l00132"></a>00132     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#e5eeb0d5e528568c4335f3e1232b1c74">reg</a> = reg;
<a name="l00133"></a>00133     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = 0;
<a name="l00134"></a>00134     <span class="keywordflow">return</span> o;
<a name="l00135"></a>00135 }
<a name="l00136"></a>00136 <span class="comment"></span>
<a name="l00137"></a>00137 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00138"></a>00138 <span class="comment">/// a first immediate operand (known as IMM0)</span>
<a name="l00139"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#e90462df43d77847591b28317121a7f0">00139</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#e90462df43d77847591b28317121a7f0">imm0</a>(xed_uint64_t v, <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00140"></a>00140     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00141"></a>00141     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638ec1aab94e9a39cad7281722d72f4c074">XED_ENCODER_OPERAND_TYPE_IMM0</a>;
<a name="l00142"></a>00142     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#5dce7d3756139b85189dad3a9156c082">imm0</a> = v;
<a name="l00143"></a>00143     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00144"></a>00144     <span class="keywordflow">return</span> o;
<a name="l00145"></a>00145 }<span class="comment"></span>
<a name="l00146"></a>00146 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00147"></a>00147 <span class="comment">/// an 32b signed immediate operand</span>
<a name="l00148"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#224148173f630a050658a41d82e1806f">00148</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#224148173f630a050658a41d82e1806f">simm0</a>(xed_int32_t v, <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00149"></a>00149     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00150"></a>00150     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126386010b70490d8deb87248988db4851991">XED_ENCODER_OPERAND_TYPE_SIMM0</a>;
<a name="l00151"></a>00151     <span class="comment">/* sign conversion: we store the int32 in an uint64. It gets sign</span>
<a name="l00152"></a>00152 <span class="comment">    extended.  Later we convert it to the right width for the</span>
<a name="l00153"></a>00153 <span class="comment">    instruction. The maximum width of a signed immediate is currently</span>
<a name="l00154"></a>00154 <span class="comment">    32b. */</span>
<a name="l00155"></a>00155     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#5dce7d3756139b85189dad3a9156c082">imm0</a> = v;
<a name="l00156"></a>00156     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00157"></a>00157     <span class="keywordflow">return</span> o;
<a name="l00158"></a>00158 }
<a name="l00159"></a>00159 <span class="comment"></span>
<a name="l00160"></a>00160 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00161"></a>00161 <span class="comment">/// an second immediate operand (known as IMM1)</span>
<a name="l00162"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#c6d077d7c8bd6d603c46554caf4eac8b">00162</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#c6d077d7c8bd6d603c46554caf4eac8b">imm1</a>(xed_uint8_t v) {
<a name="l00163"></a>00163     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00164"></a>00164     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d1263839d2ecbd06732c86c9be27e5697513e4">XED_ENCODER_OPERAND_TYPE_IMM1</a>;
<a name="l00165"></a>00165     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#14f433f92d67d3bed1e912dfaec7478c">imm1</a> = v; 
<a name="l00166"></a>00166     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = 8;
<a name="l00167"></a>00167     <span class="keywordflow">return</span> o;
<a name="l00168"></a>00168 }
<a name="l00169"></a>00169 
<a name="l00170"></a>00170 <span class="comment"></span>
<a name="l00171"></a>00171 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00172"></a>00172 <span class="comment">/// an operand storage field name and value</span>
<a name="l00173"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#6e3a5790c41207ef4b7c1f2fb1153b46">00173</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#6e3a5790c41207ef4b7c1f2fb1153b46">xother</a>(<a class="code" href="xed2-ia32_2include_2xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a">xed_operand_enum_t</a> operand_name,
<a name="l00174"></a>00174                                                 xed_int32_t value) {
<a name="l00175"></a>00175     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00176"></a>00176     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638263eeedf98d73a93dd619bc0b2359d79">XED_ENCODER_OPERAND_TYPE_OTHER</a>;
<a name="l00177"></a>00177     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#e0848586a721bdf0be7381053b9e9925">s</a>.operand_name = operand_name;
<a name="l00178"></a>00178     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#e0848586a721bdf0be7381053b9e9925">s</a>.value = value;
<a name="l00179"></a>00179     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = 0;
<a name="l00180"></a>00180     <span class="keywordflow">return</span> o;
<a name="l00181"></a>00181 }<span class="comment"></span>
<a name="l00182"></a>00182 <span class="comment">//@}</span>
<a name="l00183"></a>00183 <span class="comment"></span>
<a name="l00184"></a>00184 <span class="comment"></span>
<a name="l00185"></a>00185 <span class="comment">//@}</span>
<a name="l00186"></a>00186 <span class="comment"></span><span class="comment"></span>
<a name="l00187"></a>00187 <span class="comment">/// @name Memory and Segment-releated Operands</span>
<a name="l00188"></a>00188 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00189"></a>00189 <span class="comment"></span><span class="comment"></span>
<a name="l00190"></a>00190 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00191"></a>00191 <span class="comment">/// seg reg override for implicit suppressed memory ops</span>
<a name="l00192"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#793653db3198f72eb18d140e25dde653">00192</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#793653db3198f72eb18d140e25dde653">xseg0</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg0) {
<a name="l00193"></a>00193     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00194"></a>00194     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d126385a7a43348b1552de102211c4d76ca72d">XED_ENCODER_OPERAND_TYPE_SEG0</a>;
<a name="l00195"></a>00195     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#e5eeb0d5e528568c4335f3e1232b1c74">reg</a> = seg0;
<a name="l00196"></a>00196     <span class="keywordflow">return</span> o;
<a name="l00197"></a>00197 }
<a name="l00198"></a>00198 <span class="comment"></span>
<a name="l00199"></a>00199 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00200"></a>00200 <span class="comment">/// seg reg override for implicit suppressed memory ops</span>
<a name="l00201"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#b67610fd9da5d421558105f820cbd27b">00201</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#b67610fd9da5d421558105f820cbd27b">xseg1</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg1) {
<a name="l00202"></a>00202     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00203"></a>00203     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638acd0df30646ec7115ac403e2dc7bf2ff">XED_ENCODER_OPERAND_TYPE_SEG1</a>;
<a name="l00204"></a>00204     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#e5eeb0d5e528568c4335f3e1232b1c74">reg</a> = seg1;
<a name="l00205"></a>00205     <span class="keywordflow">return</span> o;
<a name="l00206"></a>00206 }
<a name="l00207"></a>00207 <span class="comment"></span>
<a name="l00208"></a>00208 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00209"></a>00209 <span class="comment">/// memory operand - base only </span>
<a name="l00210"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7a36b028c6ec7d4e1dc84011cc6787d0">00210</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7a36b028c6ec7d4e1dc84011cc6787d0">xmem_b</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base, <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00211"></a>00211     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00212"></a>00212     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00213"></a>00213     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = base;
<a name="l00214"></a>00214     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00215"></a>00215     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00216"></a>00216     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = 0;
<a name="l00217"></a>00217     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a>.<a class="code" href="structxed__enc__displacement__t.html#c983d8e2ceacd11fce421ac110c65bd8">displacement</a> = 0;
<a name="l00218"></a>00218     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a>.<a class="code" href="structxed__enc__displacement__t.html#3fd0ffc7c9929f49bfc795fe01bf1798">displacement_width</a> = 0;
<a name="l00219"></a>00219     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00220"></a>00220     <span class="keywordflow">return</span> o;
<a name="l00221"></a>00221 }
<a name="l00222"></a>00222 <span class="comment"></span>
<a name="l00223"></a>00223 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00224"></a>00224 <span class="comment">/// memory operand - base and displacement only </span>
<a name="l00225"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#6a7e5ee43079588be0649fc0af9f317e">00225</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#6a7e5ee43079588be0649fc0af9f317e">xmem_bd</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base, 
<a name="l00226"></a>00226                               <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> disp,
<a name="l00227"></a>00227                               <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00228"></a>00228     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00229"></a>00229     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00230"></a>00230     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = base;
<a name="l00231"></a>00231     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00232"></a>00232     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00233"></a>00233     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = 0;
<a name="l00234"></a>00234     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a> =disp;
<a name="l00235"></a>00235     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00236"></a>00236     <span class="keywordflow">return</span> o;
<a name="l00237"></a>00237 }
<a name="l00238"></a>00238 <span class="comment"></span>
<a name="l00239"></a>00239 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00240"></a>00240 <span class="comment">/// memory operand - base, index, scale, displacement</span>
<a name="l00241"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#59d7b50dfd23d11b89be56686d6bdd63">00241</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#59d7b50dfd23d11b89be56686d6bdd63">xmem_bisd</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base, 
<a name="l00242"></a>00242                                 <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> index, 
<a name="l00243"></a>00243                                 <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> scale,
<a name="l00244"></a>00244                                 <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> disp,
<a name="l00245"></a>00245                                 <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00246"></a>00246     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00247"></a>00247     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00248"></a>00248     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = base;
<a name="l00249"></a>00249     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00250"></a>00250     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= index;
<a name="l00251"></a>00251     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = scale;
<a name="l00252"></a>00252     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a> = disp;
<a name="l00253"></a>00253     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00254"></a>00254     <span class="keywordflow">return</span> o;
<a name="l00255"></a>00255 }
<a name="l00256"></a>00256 
<a name="l00257"></a>00257 <span class="comment"></span>
<a name="l00258"></a>00258 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00259"></a>00259 <span class="comment">/// memory operand - segment and base only</span>
<a name="l00260"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#03dcdbf44f52401301bf7e1f037a4ba0">00260</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#03dcdbf44f52401301bf7e1f037a4ba0">xmem_gb</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg, <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base, <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00261"></a>00261     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00262"></a>00262     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00263"></a>00263     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = base;
<a name="l00264"></a>00264     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = seg;
<a name="l00265"></a>00265     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00266"></a>00266     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = 0;
<a name="l00267"></a>00267     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a>.<a class="code" href="structxed__enc__displacement__t.html#c983d8e2ceacd11fce421ac110c65bd8">displacement</a> = 0;
<a name="l00268"></a>00268     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a>.<a class="code" href="structxed__enc__displacement__t.html#3fd0ffc7c9929f49bfc795fe01bf1798">displacement_width</a> = 0;
<a name="l00269"></a>00269     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00270"></a>00270     <span class="keywordflow">return</span> o;
<a name="l00271"></a>00271 }
<a name="l00272"></a>00272 <span class="comment"></span>
<a name="l00273"></a>00273 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00274"></a>00274 <span class="comment">/// memory operand - segment, base and displacement only</span>
<a name="l00275"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#1ec05f0acc4469fe82b3c2824c4a366d">00275</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#1ec05f0acc4469fe82b3c2824c4a366d">xmem_gbd</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg, <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base, 
<a name="l00276"></a>00276                                <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> disp,
<a name="l00277"></a>00277                                <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00278"></a>00278     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00279"></a>00279     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00280"></a>00280     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = base;
<a name="l00281"></a>00281     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = seg;
<a name="l00282"></a>00282     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00283"></a>00283     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = 0;
<a name="l00284"></a>00284     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a> = disp;
<a name="l00285"></a>00285     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00286"></a>00286     <span class="keywordflow">return</span> o;
<a name="l00287"></a>00287 }
<a name="l00288"></a>00288 <span class="comment"></span>
<a name="l00289"></a>00289 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00290"></a>00290 <span class="comment">/// memory operand - segment and displacement only</span>
<a name="l00291"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#1515d8567dd24b840528e94ef45d5cd1">00291</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#1515d8567dd24b840528e94ef45d5cd1">xmem_gd</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg,
<a name="l00292"></a>00292                                <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> disp,
<a name="l00293"></a>00293                                <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00294"></a>00294     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00295"></a>00295     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00296"></a>00296     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00297"></a>00297     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = seg;
<a name="l00298"></a>00298     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61fac474058f0819d415285511086bf219">XED_REG_INVALID</a>;
<a name="l00299"></a>00299     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = 0;
<a name="l00300"></a>00300     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a> = disp;
<a name="l00301"></a>00301     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00302"></a>00302     <span class="keywordflow">return</span> o;
<a name="l00303"></a>00303 }
<a name="l00304"></a>00304 <span class="comment"></span>
<a name="l00305"></a>00305 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00306"></a>00306 <span class="comment">/// memory operand - segment, base, index, scale, and displacement</span>
<a name="l00307"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#00fc1e423b20d24b1843e502cc4d39a3">00307</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#00fc1e423b20d24b1843e502cc4d39a3">xmem_gbisd</a>(<a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> seg, 
<a name="l00308"></a>00308                                  <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> base, 
<a name="l00309"></a>00309                                  <a class="code" href="xed2-ia32_2include_2xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> index, 
<a name="l00310"></a>00310                                  <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> scale,
<a name="l00311"></a>00311                                  <a class="code" href="structxed__enc__displacement__t.html">xed_enc_displacement_t</a> disp, 
<a name="l00312"></a>00312                                  <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00313"></a>00313     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> o;
<a name="l00314"></a>00314     o.<a class="code" href="structxed__encoder__operand__t.html#15b522f5fb9447f7bbea3ae6baf328a9">type</a> = <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#7621255aeac26b5e78f7a0dc72d12638fb6bee5a0fcf154e71397defed76ed88">XED_ENCODER_OPERAND_TYPE_MEM</a>;
<a name="l00315"></a>00315     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#b33f5fd03ddbc01a1795e85978b32c61">base</a> = base;
<a name="l00316"></a>00316     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d07ef1ac72ff572e65e78b3653c43c1d">seg</a> = seg;
<a name="l00317"></a>00317     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#451ae2fcc3acdff8a10543b18f19f84e">index</a>= index;
<a name="l00318"></a>00318     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#d801bcd3961aa78d30caaca98489dd36">scale</a> = scale;
<a name="l00319"></a>00319     o.<a class="code" href="structxed__encoder__operand__t.html#01d174f19e13511270eefe522bc61248">u</a>.<a class="code" href="structxed__encoder__operand__t.html#7874f7a5284ff2064ba6b9bf032e25ff">mem</a>.<a class="code" href="structxed__memop__t.html#1fd26bd97ff3565101e7e79ccf1d5a53">disp</a> = disp;
<a name="l00320"></a>00320     o.<a class="code" href="structxed__encoder__operand__t.html#ea2d8c884cca697c2dbc9807dfbdd139">width</a> = width;
<a name="l00321"></a>00321     <span class="keywordflow">return</span> o;
<a name="l00322"></a>00322 }<span class="comment"></span>
<a name="l00323"></a>00323 <span class="comment">//@}</span>
<a name="l00324"></a>00324 <span class="comment"></span>
<a name="l00325"></a><a class="code" href="unionxed__encoder__prefixes__t.html">00325</a> <span class="keyword">typedef</span> <span class="keyword">union </span>{
<a name="l00326"></a>00326     <span class="keyword">struct </span>{
<a name="l00327"></a><a class="code" href="unionxed__encoder__prefixes__t.html#c8dc70af0c2333374574b71ee91d66aa">00327</a>         xed_uint32_t rep               :1;
<a name="l00328"></a><a class="code" href="unionxed__encoder__prefixes__t.html#d6e7f53ef6fc3cdd9cb45089e7978c86">00328</a>         xed_uint32_t repne             :1;
<a name="l00329"></a><a class="code" href="unionxed__encoder__prefixes__t.html#045a7a7fb9c564bb2d14a71f22356a47">00329</a>         xed_uint32_t lock              :1;
<a name="l00330"></a><a class="code" href="unionxed__encoder__prefixes__t.html#1f154d5ebf743d7d2220705a7d554a89">00330</a>         xed_uint32_t br_hint_taken     :1;
<a name="l00331"></a><a class="code" href="unionxed__encoder__prefixes__t.html#bd09ac7e3aa0de912b2150a3f2000396">00331</a>         xed_uint32_t br_hint_not_taken :1;
<a name="l00332"></a>00332     } s;
<a name="l00333"></a><a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">00333</a>     xed_uint32_t i;
<a name="l00334"></a>00334 }  <a class="code" href="unionxed__encoder__prefixes__t.html">xed_encoder_prefixes_t</a>;
<a name="l00335"></a>00335 
<a name="l00336"></a>00336 <span class="preprocessor">#define XED_ENCODER_OPERANDS_MAX 5 </span><span class="comment">/* FIXME */</span>
<a name="l00337"></a><a class="code" href="structxed__encoder__instruction__t.html">00337</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00338"></a><a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">00338</a>     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode;
<a name="l00339"></a><a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">00339</a>     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass; <span class="comment">/*FIXME: use iform instead? or allow either */</span>
<a name="l00340"></a><a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">00340</a>     xed_uint32_t effective_operand_width;
<a name="l00341"></a>00341 
<a name="l00342"></a>00342     <span class="comment">/* the effective_address_width is only requires to be set for</span>
<a name="l00343"></a>00343 <span class="comment">     *  instructions * with implicit suppressed memops or memops with no</span>
<a name="l00344"></a>00344 <span class="comment">     *  base or index regs.  When base or index regs are present, XED pick</span>
<a name="l00345"></a>00345 <span class="comment">     *  this up automatically from the register names.</span>
<a name="l00346"></a>00346 <span class="comment"></span>
<a name="l00347"></a>00347 <span class="comment">     * FIXME: make effective_address_width required by all encodes for</span>
<a name="l00348"></a>00348 <span class="comment">     * unifority. Add to xed_inst[0123]() APIs??? */</span>
<a name="l00349"></a><a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">00349</a>     xed_uint32_t effective_address_width; 
<a name="l00350"></a>00350 
<a name="l00351"></a><a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">00351</a>     <a class="code" href="unionxed__encoder__prefixes__t.html">xed_encoder_prefixes_t</a> prefixes;
<a name="l00352"></a><a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">00352</a>     xed_uint32_t noperands;
<a name="l00353"></a><a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">00353</a>     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> operands[XED_ENCODER_OPERANDS_MAX];
<a name="l00354"></a>00354 } <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>;
<a name="l00355"></a>00355 <span class="comment"></span>
<a name="l00356"></a>00356 <span class="comment">/// @name Instruction Properties and prefixes</span>
<a name="l00357"></a>00357 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00358"></a>00358 <span class="comment"></span><span class="comment">/// @ingroup ENCHL</span>
<a name="l00359"></a>00359 <span class="comment"></span><span class="comment">/// This is to specify effective address size different than the</span>
<a name="l00360"></a>00360 <span class="comment"></span><span class="comment">/// default. For things with base or index regs, XED picks it up from the</span>
<a name="l00361"></a>00361 <span class="comment"></span><span class="comment">/// registers. But for things that have implicit memops, or no base or index</span>
<a name="l00362"></a>00362 <span class="comment"></span><span class="comment">/// reg, we must allow the user to set the address width directly.</span>
<a name="l00363"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#3dcef3e2652fa12f63eecd6fa29d2f48">00363</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#3dcef3e2652fa12f63eecd6fa29d2f48">xaddr</a>(<a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* x, 
<a name="l00364"></a>00364                              <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> width) {
<a name="l00365"></a>00365     x-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = width;
<a name="l00366"></a>00366 }
<a name="l00367"></a>00367 
<a name="l00368"></a>00368 <span class="comment"></span>
<a name="l00369"></a>00369 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00370"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#089c068bfc4e04fe9571d1af267af068">00370</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#089c068bfc4e04fe9571d1af267af068">xrep</a>(<a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* x) { 
<a name="l00371"></a>00371     x-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#2f01cb0ecd47fddfa9a0e4bc67d6f18c">s</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#c8dc70af0c2333374574b71ee91d66aa">rep</a>=1;
<a name="l00372"></a>00372 }
<a name="l00373"></a>00373 <span class="comment"></span>
<a name="l00374"></a>00374 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00375"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#139f196ef758eabea56fc3c12bc04008">00375</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#139f196ef758eabea56fc3c12bc04008">xrepne</a>(<a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* x) { 
<a name="l00376"></a>00376     x-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#2f01cb0ecd47fddfa9a0e4bc67d6f18c">s</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#d6e7f53ef6fc3cdd9cb45089e7978c86">repne</a>=1;
<a name="l00377"></a>00377 }
<a name="l00378"></a>00378 <span class="comment"></span>
<a name="l00379"></a>00379 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00380"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#2bddb61d7cc4980ad081933603a98bf4">00380</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#2bddb61d7cc4980ad081933603a98bf4">xlock</a>(<a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* x) { 
<a name="l00381"></a>00381     x-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#2f01cb0ecd47fddfa9a0e4bc67d6f18c">s</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#045a7a7fb9c564bb2d14a71f22356a47">lock</a>=1;
<a name="l00382"></a>00382 }
<a name="l00383"></a>00383 
<a name="l00384"></a>00384 
<a name="l00385"></a>00385 
<a name="l00386"></a>00386 <span class="comment"></span>
<a name="l00387"></a>00387 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00388"></a>00388 <span class="comment">/// convert a #xed_encoder_instruction_t to a #xed_encoder_request_t for encoding</span>
<a name="l00389"></a>00389 <span class="comment"></span><a class="code" href="xed2-ia32_2include_2xed-types_8h.html#d355c921b747945a82d62233a599c7b5">xed_bool_t</a> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#22b6ec424e2b07c28f7094196c039172">xed_convert_to_encoder_request</a>(<a class="code" href="xed2-ia32_2include_2xed-encode_8h.html#6f914541ddfa1ffe609acebff72d0b5f">xed_encoder_request_t</a>* out,
<a name="l00390"></a>00390                                           <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* in);
<a name="l00391"></a>00391 <span class="comment"></span>
<a name="l00392"></a>00392 <span class="comment">//@}</span>
<a name="l00393"></a>00393 <span class="comment"></span><span class="comment"></span>
<a name="l00394"></a>00394 <span class="comment">////////////////////////////////////////////////////////////////////////////</span>
<a name="l00395"></a>00395 <span class="comment"></span><span class="comment">/* FIXME: rather than return the xed_encoder_instruction_t I can make</span>
<a name="l00396"></a>00396 <span class="comment"> * another version that returns a xed_encoder_request_t. Saves silly</span>
<a name="l00397"></a>00397 <span class="comment"> * copying. Although the xed_encoder_instruction_t might be handy for</span>
<a name="l00398"></a>00398 <span class="comment"> * having code templates that get customized &amp; passed to encoder later. */</span><span class="comment"></span>
<a name="l00399"></a>00399 <span class="comment">////////////////////////////////////////////////////////////////////////////</span>
<a name="l00400"></a>00400 <span class="comment">/// @name Creating instructions from operands</span>
<a name="l00401"></a>00401 <span class="comment"></span><span class="comment">//@{</span>
<a name="l00402"></a>00402 <span class="comment"></span><span class="comment"></span>
<a name="l00403"></a>00403 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00404"></a>00404 <span class="comment">/// instruction with no operands</span>
<a name="l00405"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#8d463fe5834dfc1dd4e4664fbf897528">00405</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#8d463fe5834dfc1dd4e4664fbf897528">xed_inst0</a>(
<a name="l00406"></a>00406     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00407"></a>00407     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00408"></a>00408     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00409"></a>00409     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width) {
<a name="l00410"></a>00410 
<a name="l00411"></a>00411     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00412"></a>00412     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00413"></a>00413     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00414"></a>00414     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00415"></a>00415     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00416"></a>00416     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = 0;
<a name="l00417"></a>00417 }
<a name="l00418"></a>00418 <span class="comment"></span>
<a name="l00419"></a>00419 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00420"></a>00420 <span class="comment">/// instruction with one operand</span>
<a name="l00421"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#605a860a788e8ba6d7342783be23a093">00421</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#605a860a788e8ba6d7342783be23a093">xed_inst1</a>(
<a name="l00422"></a>00422     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00423"></a>00423     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00424"></a>00424     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00425"></a>00425     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width,
<a name="l00426"></a>00426     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op0) {
<a name="l00427"></a>00427     
<a name="l00428"></a>00428     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00429"></a>00429     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00430"></a>00430     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00431"></a>00431     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00432"></a>00432     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00433"></a>00433     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[0] = op0;
<a name="l00434"></a>00434     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = 1;
<a name="l00435"></a>00435 }
<a name="l00436"></a>00436 <span class="comment"></span>
<a name="l00437"></a>00437 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00438"></a>00438 <span class="comment">/// instruction with two operands</span>
<a name="l00439"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#d2669ef272ad5c97d0e5070b50cce5ec">00439</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#d2669ef272ad5c97d0e5070b50cce5ec">xed_inst2</a>(
<a name="l00440"></a>00440     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00441"></a>00441     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00442"></a>00442     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00443"></a>00443     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width,
<a name="l00444"></a>00444     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op0,
<a name="l00445"></a>00445     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op1) {
<a name="l00446"></a>00446 
<a name="l00447"></a>00447     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00448"></a>00448     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00449"></a>00449     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00450"></a>00450     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00451"></a>00451     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00452"></a>00452     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[0] = op0;
<a name="l00453"></a>00453     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[1] = op1;
<a name="l00454"></a>00454     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = 2;
<a name="l00455"></a>00455 }
<a name="l00456"></a>00456 <span class="comment"></span>
<a name="l00457"></a>00457 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00458"></a>00458 <span class="comment">/// instruction with three operands</span>
<a name="l00459"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#5bf8b6ae6bb2bfd07725c1acfea2ac2b">00459</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#5bf8b6ae6bb2bfd07725c1acfea2ac2b">xed_inst3</a>(
<a name="l00460"></a>00460     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00461"></a>00461     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00462"></a>00462     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00463"></a>00463     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width,
<a name="l00464"></a>00464     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op0,
<a name="l00465"></a>00465     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op1,
<a name="l00466"></a>00466     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op2) {
<a name="l00467"></a>00467 
<a name="l00468"></a>00468     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00469"></a>00469     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00470"></a>00470     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00471"></a>00471     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00472"></a>00472     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00473"></a>00473     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[0] = op0;
<a name="l00474"></a>00474     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[1] = op1;
<a name="l00475"></a>00475     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[2] = op2;
<a name="l00476"></a>00476     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = 3;
<a name="l00477"></a>00477 }
<a name="l00478"></a>00478 
<a name="l00479"></a>00479 <span class="comment"></span>
<a name="l00480"></a>00480 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00481"></a>00481 <span class="comment">/// instruction with four operands</span>
<a name="l00482"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#49825c9af03114c82b10b61aefa8ce93">00482</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#49825c9af03114c82b10b61aefa8ce93">xed_inst4</a>(
<a name="l00483"></a>00483     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00484"></a>00484     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00485"></a>00485     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00486"></a>00486     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width,
<a name="l00487"></a>00487     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op0,
<a name="l00488"></a>00488     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op1,
<a name="l00489"></a>00489     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op2,
<a name="l00490"></a>00490     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op3) {
<a name="l00491"></a>00491 
<a name="l00492"></a>00492     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00493"></a>00493     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00494"></a>00494     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00495"></a>00495     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00496"></a>00496     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00497"></a>00497     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[0] = op0;
<a name="l00498"></a>00498     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[1] = op1;
<a name="l00499"></a>00499     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[2] = op2;
<a name="l00500"></a>00500     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[3] = op3;
<a name="l00501"></a>00501     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = 4;
<a name="l00502"></a>00502 }
<a name="l00503"></a>00503 <span class="comment"></span>
<a name="l00504"></a>00504 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00505"></a>00505 <span class="comment">/// instruction with five operands</span>
<a name="l00506"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#3a745d122221c6039c4aad0c2e61bc68">00506</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#3a745d122221c6039c4aad0c2e61bc68">xed_inst5</a>(
<a name="l00507"></a>00507     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00508"></a>00508     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00509"></a>00509     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00510"></a>00510     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width,
<a name="l00511"></a>00511     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op0,
<a name="l00512"></a>00512     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op1,
<a name="l00513"></a>00513     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op2,
<a name="l00514"></a>00514     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op3,
<a name="l00515"></a>00515     <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a> op4) {
<a name="l00516"></a>00516 
<a name="l00517"></a>00517     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00518"></a>00518     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00519"></a>00519     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00520"></a>00520     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00521"></a>00521     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00522"></a>00522     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[0] = op0;
<a name="l00523"></a>00523     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[1] = op1;
<a name="l00524"></a>00524     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[2] = op2;
<a name="l00525"></a>00525     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[3] = op3;
<a name="l00526"></a>00526     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[4] = op4;
<a name="l00527"></a>00527     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = 5;
<a name="l00528"></a>00528 }
<a name="l00529"></a>00529 
<a name="l00530"></a>00530 <span class="comment"></span>
<a name="l00531"></a>00531 <span class="comment">/// @ingroup ENCHL</span>
<a name="l00532"></a>00532 <span class="comment">/// instruction with an array of operands. The maximum number is</span>
<a name="l00533"></a>00533 <span class="comment">/// XED_ENCODER_OPERANDS_MAX. The array's contents are copied.</span>
<a name="l00534"></a><a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#0b2f5d72a7c89397c9eb011280d4b001">00534</a> <span class="comment"></span>XED_INLINE <span class="keyword">static</span>  <span class="keywordtype">void</span> <a class="code" href="xed2-ia32_2include_2xed-encoder-hl_8h.html#0b2f5d72a7c89397c9eb011280d4b001">xed_inst</a>(
<a name="l00535"></a>00535     <a class="code" href="structxed__encoder__instruction__t.html">xed_encoder_instruction_t</a>* inst,
<a name="l00536"></a>00536     <a class="code" href="group__INIT.html#g58af142456a133c3df29c763216a85cf">xed_state_t</a> mode,
<a name="l00537"></a>00537     <a class="code" href="xed2-ia32_2include_2xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> iclass,
<a name="l00538"></a>00538     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> effective_operand_width,
<a name="l00539"></a>00539     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> number_of_operands,
<a name="l00540"></a>00540     <span class="keyword">const</span> <a class="code" href="structxed__encoder__operand__t.html">xed_encoder_operand_t</a>* operand_array) {
<a name="l00541"></a>00541 
<a name="l00542"></a>00542     <a class="code" href="xed2-ia32_2include_2xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> i;
<a name="l00543"></a>00543     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#1647966dc2ac0f213f9674e6c1e7e336">mode</a>=mode;
<a name="l00544"></a>00544     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#bdc1758a5dc07d92701e95617d539909">iclass</a> = iclass;
<a name="l00545"></a>00545     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#2b23c8d18171f9a4699744992b5cc026">effective_operand_width</a> = effective_operand_width;
<a name="l00546"></a>00546     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#d829df66320029ad521451b2896b18f3">effective_address_width</a> = 0;
<a name="l00547"></a>00547     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#76abfb9a09afa6474a8c673db06a3839">prefixes</a>.<a class="code" href="unionxed__encoder__prefixes__t.html#15762219ece938eca0db01a735121dbe">i</a> = 0;
<a name="l00548"></a>00548     xed_assert(number_of_operands &lt; XED_ENCODER_OPERANDS_MAX);
<a name="l00549"></a>00549     <span class="keywordflow">for</span>(i=0;i&lt;number_of_operands;i++) {
<a name="l00550"></a>00550         inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#0cc465ba90570b77abcc6e2833b43673">operands</a>[i] = operand_array[i];
<a name="l00551"></a>00551     }
<a name="l00552"></a>00552     inst-&gt;<a class="code" href="structxed__encoder__instruction__t.html#10c44c5cf064364003d1d4f6f4bbb7da">noperands</a> = number_of_operands;
<a name="l00553"></a>00553 }
<a name="l00554"></a>00554 <span class="comment"></span>
<a name="l00555"></a>00555 <span class="comment">//@}</span>
<a name="l00556"></a>00556 <span class="comment"></span>
<a name="l00557"></a>00557 <span class="comment">/*</span>
<a name="l00558"></a>00558 <span class="comment"> xed_encoder_instruction_t x,y;</span>
<a name="l00559"></a>00559 <span class="comment"></span>
<a name="l00560"></a>00560 <span class="comment"> xed_inst2(&amp;x, state, XED_ICLASS_ADD, 32, </span>
<a name="l00561"></a>00561 <span class="comment">           xreg(XED_REG_EAX), </span>
<a name="l00562"></a>00562 <span class="comment">           xmem_bd(XED_REG_EDX, xdisp(0x11223344, 32), 32));</span>
<a name="l00563"></a>00563 <span class="comment">  </span>
<a name="l00564"></a>00564 <span class="comment"> xed_inst2(&amp;y, state, XED_ICLASS_ADD, 32, </span>
<a name="l00565"></a>00565 <span class="comment">           xreg(XED_REG_EAX), </span>
<a name="l00566"></a>00566 <span class="comment">           xmem_gbisd(XED_REG_FS, XED_REG_EAX, XED_REG_ESI,4, xdisp(0x11223344, 32), 32));</span>
<a name="l00567"></a>00567 <span class="comment"></span>
<a name="l00568"></a>00568 <span class="comment"> */</span>
<a name="l00569"></a>00569 
<a name="l00570"></a>00570 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr>
<p class="footer">
Generated on Fri Mar 30 16:18:24 2012 for <a href="http://bitblaze.cs.berkeley.edu/temu.html">TEMU</a> by
<a href="http://www.doxygen.org"><img src="doxygen.png" alt="Doxygen"
align="middle" border="0"/>1.5.8</a><br/>
Copyright &copy; 2008-2009, BitBlaze Project. All Rights Reserved.</p>

<hr>
<!--#include virtual="/attrib.incl" -->

</body>
</html>
