Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Release 1.0
[palacios.git] / misc / decoder_test / XED2 / doc / html / xed-inst_8h-source.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>XED2: XED2 User Guide - Thu May 15 03:15:09 2008 </title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.4.6 -->
8 <div class="tabs">
9   <ul>
10     <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11     <li><a href="modules.html"><span>Modules</span></a></li>
12     <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
13     <li id="current"><a href="files.html"><span>Files</span></a></li>
14     <li>
15       <form action="search.php" method="get">
16         <table cellspacing="0" cellpadding="0" border="0">
17           <tr>
18             <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
19             <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
20           </tr>
21         </table>
22       </form>
23     </li>
24   </ul></div>
25 <div class="tabs">
26   <ul>
27     <li><a href="files.html"><span>File&nbsp;List</span></a></li>
28     <li><a href="globals.html"><span>Globals</span></a></li>
29   </ul></div>
30 <h1>xed-inst.h</h1><a href="xed-inst_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>
31 <a name="l00002"></a>00002 <span class="comment">Copyright (c) 2007, Intel Corp.</span>
32 <a name="l00003"></a>00003 <span class="comment">All rights reserved.</span>
33 <a name="l00004"></a>00004 <span class="comment"></span>
34 <a name="l00005"></a>00005 <span class="comment">Redistribution and use in source and binary forms, with or without</span>
35 <a name="l00006"></a>00006 <span class="comment">modification, are permitted provided that the following conditions are</span>
36 <a name="l00007"></a>00007 <span class="comment">met:</span>
37 <a name="l00008"></a>00008 <span class="comment"></span>
38 <a name="l00009"></a>00009 <span class="comment">    * Redistributions of source code must retain the above copyright</span>
39 <a name="l00010"></a>00010 <span class="comment">      notice, this list of conditions and the following disclaimer.</span>
40 <a name="l00011"></a>00011 <span class="comment"></span>
41 <a name="l00012"></a>00012 <span class="comment">    * Redistributions in binary form must reproduce the above</span>
42 <a name="l00013"></a>00013 <span class="comment">      copyright notice, this list of conditions and the following</span>
43 <a name="l00014"></a>00014 <span class="comment">      disclaimer in the documentation and/or other materials provided</span>
44 <a name="l00015"></a>00015 <span class="comment">      with the distribution.</span>
45 <a name="l00016"></a>00016 <span class="comment"></span>
46 <a name="l00017"></a>00017 <span class="comment">    * Neither the name of Intel Corporation nor the names of its</span>
47 <a name="l00018"></a>00018 <span class="comment">      contributors may be used to endorse or promote products derived</span>
48 <a name="l00019"></a>00019 <span class="comment">      from this software without specific prior written permission.</span>
49 <a name="l00020"></a>00020 <span class="comment"></span>
50 <a name="l00021"></a>00021 <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
51 <a name="l00022"></a>00022 <span class="comment">"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
52 <a name="l00023"></a>00023 <span class="comment">LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
53 <a name="l00024"></a>00024 <span class="comment">A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span>
54 <a name="l00025"></a>00025 <span class="comment">OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span>
55 <a name="l00026"></a>00026 <span class="comment">SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span>
56 <a name="l00027"></a>00027 <span class="comment">LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span>
57 <a name="l00028"></a>00028 <span class="comment">DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span>
58 <a name="l00029"></a>00029 <span class="comment">THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
59 <a name="l00030"></a>00030 <span class="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span>
60 <a name="l00031"></a>00031 <span class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
61 <a name="l00032"></a>00032 <span class="comment">END_LEGAL */</span>
62 <a name="l00035"></a>00035 
63 <a name="l00036"></a>00036 <span class="preprocessor">#if !defined(_XED_INST_H_)</span>
64 <a name="l00037"></a><a class="code" href="xed-inst_8h.html#da225dd28306b9e3a239089468d956a1">00037</a> <span class="preprocessor"></span><span class="preprocessor"># define _XED_INST_H_</span>
65 <a name="l00038"></a>00038 <span class="preprocessor"></span>
66 <a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="xed-util_8h.html">xed-util.h</a>"</span>
67 <a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="xed-portability_8h.html">xed-portability.h</a>"</span>
68 <a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="xed-category-enum_8h.html">xed-category-enum.h</a>"</span>
69 <a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="xed-extension-enum_8h.html">xed-extension-enum.h</a>"</span>
70 <a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="xed-iclass-enum_8h.html">xed-iclass-enum.h</a>"</span>
71 <a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="xed-operand-enum_8h.html">xed-operand-enum.h</a>"</span>
72 <a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="xed-operand-visibility-enum_8h.html">xed-operand-visibility-enum.h</a>"</span>
73 <a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="xed-operand-action-enum_8h.html">xed-operand-action-enum.h</a>"</span>
74 <a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="xed-operand-type-enum_8h.html">xed-operand-type-enum.h</a>"</span>
75 <a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="xed-nonterminal-enum_8h.html">xed-nonterminal-enum.h</a>"</span> <span class="comment">// a generated file</span>
76 <a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="xed-operand-width-enum_8h.html">xed-operand-width-enum.h</a>"</span> <span class="comment">// a generated file</span>
77 <a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="xed-reg-enum_8h.html">xed-reg-enum.h</a>"</span> <span class="comment">// a generated file</span>
78 <a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="xed-attribute-enum_8h.html">xed-attribute-enum.h</a>"</span> <span class="comment">// a generated file</span>
79 <a name="l00052"></a>00052 <span class="preprocessor">#include "<a class="code" href="xed-iform-enum_8h.html">xed-iform-enum.h</a>"</span> <span class="comment">// a generated file</span>
80 <a name="l00053"></a>00053 <span class="preprocessor">#include "<a class="code" href="xed-operand-bitvec_8h.html">xed-operand-bitvec.h</a>"</span> <span class="comment">// a generated file</span>
81 <a name="l00054"></a>00054 
82 <a name="l00055"></a>00055 
83 <a name="l00056"></a>00056 <span class="keyword">struct </span><a class="code" href="structxed__decoded__inst__s.html">xed_decoded_inst_s</a>; <span class="comment">//fwd-decl</span>
84 <a name="l00057"></a>00057 
85 <a name="l00058"></a><a class="code" href="xed-inst_8h.html#b42ac4782b59a5c7ec3718d56e7530c0">00058</a> <span class="keyword">typedef</span> void (*<a class="code" href="xed-inst_8h.html#b42ac4782b59a5c7ec3718d56e7530c0">xed_operand_extractor_fn_t</a>)(<span class="keyword">struct </span><a class="code" href="structxed__decoded__inst__s.html">xed_decoded_inst_s</a>* xds);
86 <a name="l00059"></a>00059 <span class="comment">//typedef xed_bool_t (*xed_instruction_fixed_bit_confirmer_fn_t)(struct xed_decoded_inst_s* xds);</span>
87 <a name="l00060"></a>00060 
88 <a name="l00061"></a>00061 
89 <a name="l00064"></a><a class="code" href="structxed__operand__s.html">00064</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="structxed__operand__s.html">xed_operand_s</a>
90 <a name="l00065"></a>00065 {
91 <a name="l00066"></a><a class="code" href="structxed__operand__s.html#5648d7311aa0ac212d1d791ae77d61ca">00066</a>     <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a">xed_operand_enum_t</a> _name;
92 <a name="l00067"></a>00067     
93 <a name="l00068"></a><a class="code" href="structxed__operand__s.html#ad61b6c9cff8c15a210b713249a62223">00068</a>     <a class="code" href="xed-operand-visibility-enum_8h.html#e678c6279a7ba50bf58f2e357242b58d">xed_operand_visibility_enum_t</a> _operand_visibility;
94 <a name="l00069"></a>00069 
95 <a name="l00070"></a><a class="code" href="structxed__operand__s.html#a9ecf1d105b566b58e4a9fd7aabb1ab6">00070</a>     <a class="code" href="xed-operand-action-enum_8h.html#6bf8113365b84b9d6ab549fdfef2643f">xed_operand_action_enum_t</a> _rw;
96 <a name="l00071"></a><a class="code" href="structxed__operand__s.html#2e68845abb787426ebe6c4329a81907a">00071</a>     <a class="code" href="xed-operand-width-enum_8h.html#4bc2ed96b8433c06c363d614a2fa1676">xed_operand_width_enum_t</a> _oc2;
97 <a name="l00072"></a>00072 
98 <a name="l00073"></a><a class="code" href="structxed__operand__s.html#d35e0891736807e22e0697801984b1ad">00073</a>     <a class="code" href="xed-operand-type-enum_8h.html#7f9198331fe1015a2df65f7b42aa43a8">xed_operand_type_enum_t</a> _type;
99 <a name="l00074"></a>00074     <span class="keyword">union </span>{
100 <a name="l00075"></a><a class="code" href="structxed__operand__s.html#adbfe169117889af4a00b8e66ad8d577">00075</a>         xed_uint32_t               _imm; 
101 <a name="l00076"></a><a class="code" href="structxed__operand__s.html#f00fef3dfbd9105b34b58d36c96a07a5">00076</a>         <a class="code" href="xed-nonterminal-enum_8h.html#e0eb8f71a8f89cddf0df4b1a6a2b27af">xed_nonterminal_enum_t</a> _nt; <span class="comment">// for nt_lookup_fn's</span>
102 <a name="l00077"></a><a class="code" href="structxed__operand__s.html#ecf0d39932822f1a79838ec7ff5d591a">00077</a>         <a class="code" href="xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a>         _reg;
103 <a name="l00078"></a>00078     } _u;
104 <a name="l00079"></a>00079 }  <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>;    
105 <a name="l00080"></a>00080 
106 <a name="l00082"></a>00082 
107 <a name="l00083"></a>00083 
108 <a name="l00084"></a><a class="code" href="group__DEC.html#g57209697b0dfb3e9ed4f694ca7cc16a4">00084</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a">xed_operand_enum_t</a> <a class="code" href="group__DEC.html#g57209697b0dfb3e9ed4f694ca7cc16a4">xed_operand_name</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p)  { 
109 <a name="l00085"></a>00085     <span class="keywordflow">return</span> p-&gt;_name; 
110 <a name="l00086"></a>00086 }
111 <a name="l00087"></a>00087 
112 <a name="l00088"></a>00088 
113 <a name="l00090"></a><a class="code" href="group__DEC.html#g2e8b5df9fc68c6aa7fbeb98735e1d4a9">00090</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-operand-visibility-enum_8h.html#e678c6279a7ba50bf58f2e357242b58d">xed_operand_visibility_enum_t</a>  <a class="code" href="group__DEC.html#g2e8b5df9fc68c6aa7fbeb98735e1d4a9">xed_operand_operand_visibility</a>( <span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p) { 
114 <a name="l00091"></a>00091     <span class="keywordflow">return</span> p-&gt;_operand_visibility; 
115 <a name="l00092"></a>00092 }
116 <a name="l00093"></a>00093 
117 <a name="l00094"></a>00094 
118 <a name="l00098"></a><a class="code" href="group__DEC.html#gcaf67b54704bacb6b47f5f2afcf2a4b1">00098</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-operand-type-enum_8h.html#7f9198331fe1015a2df65f7b42aa43a8">xed_operand_type_enum_t</a> <a class="code" href="group__DEC.html#gcaf67b54704bacb6b47f5f2afcf2a4b1">xed_operand_type</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p)  {
119 <a name="l00099"></a>00099     <span class="keywordflow">return</span> p-&gt;_type; 
120 <a name="l00100"></a>00100 }
121 <a name="l00101"></a>00101 
122 <a name="l00102"></a>00102 
123 <a name="l00104"></a><a class="code" href="group__DEC.html#g1159569c734bf712a40a2a88542d549d">00104</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-operand-width-enum_8h.html#4bc2ed96b8433c06c363d614a2fa1676">xed_operand_width_enum_t</a> <a class="code" href="group__DEC.html#g1159569c734bf712a40a2a88542d549d">xed_operand_width</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p)  { 
124 <a name="l00105"></a>00105     <span class="keywordflow">return</span> p-&gt;_oc2; 
125 <a name="l00106"></a>00106 }
126 <a name="l00107"></a>00107 
127 <a name="l00109"></a>00109 <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> 
128 <a name="l00110"></a><a class="code" href="group__DEC.html#gf690022f17c39fbc270373f013034b5b">00110</a> <a class="code" href="xed-nonterminal-enum_8h.html#e0eb8f71a8f89cddf0df4b1a6a2b27af">xed_nonterminal_enum_t</a> <a class="code" href="group__DEC.html#gf690022f17c39fbc270373f013034b5b">xed_operand_nonterminal_name</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p)  { 
129 <a name="l00111"></a>00111     <span class="keywordflow">return</span> p-&gt;_u._nt; 
130 <a name="l00112"></a>00112 }
131 <a name="l00113"></a>00113 
132 <a name="l00123"></a><a class="code" href="group__DEC.html#gc7b6d553eb70c5eeda751a20fe8ed1a4">00123</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-reg-enum_8h.html#f05c33c5a68e9304d1d8ac0408ae3f61">xed_reg_enum_t</a> <a class="code" href="group__DEC.html#gc7b6d553eb70c5eeda751a20fe8ed1a4">xed_operand_reg</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p) {
133 <a name="l00124"></a>00124     <span class="keywordflow">return</span> p-&gt;_u._reg;
134 <a name="l00125"></a>00125 }
135 <a name="l00126"></a>00126 
136 <a name="l00127"></a>00127 
137 <a name="l00128"></a>00128 
138 <a name="l00139"></a><a class="code" href="group__DEC.html#gfea07afe6bade70f2ebfe3b491b99d41">00139</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#gfea07afe6bade70f2ebfe3b491b99d41">xed_operand_template_is_register</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p) {
139 <a name="l00140"></a>00140     <span class="keywordflow">return</span> p-&gt;_type == <a class="code" href="xed-operand-type-enum_8h.html#7f9198331fe1015a2df65f7b42aa43a86c08de43a20229d27939a21afbd5e364">XED_OPERAND_TYPE_NT_LOOKUP_FN</a> || p-&gt;_type == <a class="code" href="xed-operand-type-enum_8h.html#7f9198331fe1015a2df65f7b42aa43a8ecfe0b5963563029b01712a8eb6e56e5">XED_OPERAND_TYPE_REG</a>;
140 <a name="l00141"></a>00141 }
141 <a name="l00142"></a>00142 
142 <a name="l00146"></a><a class="code" href="group__DEC.html#g15cd2fdc19d6e7e9864df7b56e9235f0">00146</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> xed_uint32_t <a class="code" href="group__DEC.html#g15cd2fdc19d6e7e9864df7b56e9235f0">xed_operand_imm</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p) {
143 <a name="l00147"></a>00147     <span class="keywordflow">return</span> p-&gt;_u._imm;
144 <a name="l00148"></a>00148 }
145 <a name="l00149"></a>00149 
146 <a name="l00155"></a>00155 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <span class="keywordtype">void</span>    <a class="code" href="group__DEC.html#gb5528945cff3a8531a58103fffdcee97">xed_operand_print</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p, <span class="keywordtype">char</span>* buf, <span class="keywordtype">int</span> buflen);
147 <a name="l00157"></a>00157 
148 <a name="l00158"></a>00158 
149 <a name="l00159"></a>00159 
150 <a name="l00160"></a>00160 
151 <a name="l00161"></a>00161 
152 <a name="l00162"></a>00162 
153 <a name="l00163"></a>00163 
154 <a name="l00164"></a>00164 
155 <a name="l00165"></a>00165 
156 <a name="l00166"></a><a class="code" href="group__DEC.html#gb506c3ac00ee5350d9b5ab55270c392c">00166</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#gb506c3ac00ee5350d9b5ab55270c392c">xed_operand_is_register</a>(<a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a">xed_operand_enum_t</a> name) {
157 <a name="l00167"></a>00167     <span class="keywordflow">return</span> name &gt;= <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a4a8a5c45ea6041f25d7b98e3892bb389">XED_OPERAND_REG0</a> &amp;&amp; name &lt;= <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011af123139f3655bdbec0d3898aec5acc0f">XED_OPERAND_REG15</a>;
158 <a name="l00168"></a>00168 }
159 <a name="l00174"></a><a class="code" href="group__DEC.html#g336d0e245e83f1b90f609f72b136a2aa">00174</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#g336d0e245e83f1b90f609f72b136a2aa">xed_operand_is_memory_addressing_register</a>(<a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a">xed_operand_enum_t</a> name) {
160 <a name="l00175"></a>00175     <span class="keywordflow">return</span>  ( name == <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a241d8ddb2a06d1b612a213d454b9b0c3">XED_OPERAND_BASE0</a> || 
161 <a name="l00176"></a>00176               name == <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a5a03e2a2b5ff9fd31d4ff7ba2ee255f2">XED_OPERAND_INDEX</a> ||
162 <a name="l00177"></a>00177               name == <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a2c3c0c5a73438245c6d52fc0f1e4ea1d">XED_OPERAND_SEG0</a>  ||
163 <a name="l00178"></a>00178               name == <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011aed6a7ce1599b30b7c15dbf57f2001121">XED_OPERAND_BASE1</a> || 
164 <a name="l00179"></a>00179               name == <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a5276ed715de910f416b8c389732e879f">XED_OPERAND_SEG1</a> );
165 <a name="l00180"></a>00180 }
166 <a name="l00181"></a>00181 
167 <a name="l00183"></a>00183 
168 <a name="l00185"></a>00185 
169 <a name="l00186"></a>00186 
170 <a name="l00187"></a>00187 
171 <a name="l00188"></a>00188 
172 <a name="l00189"></a><a class="code" href="group__DEC.html#ge5299214951891952401b5061e48a6ca">00189</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-operand-action-enum_8h.html#6bf8113365b84b9d6ab549fdfef2643f">xed_operand_action_enum_t</a> <a class="code" href="group__DEC.html#ge5299214951891952401b5061e48a6ca">xed_operand_rw</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p)  { 
173 <a name="l00190"></a>00190     <span class="keywordflow">return</span> p-&gt;_rw; 
174 <a name="l00191"></a>00191 }
175 <a name="l00192"></a>00192 
176 <a name="l00195"></a>00195 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#g549f3a156257abb9979df806b436ad85">xed_operand_read</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
177 <a name="l00198"></a>00198 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#g9cb66680c46f2ba09edbf63a8df3b52b">xed_operand_read_only</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
178 <a name="l00201"></a>00201 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#gadb2fcc833f5245dcbfd80dd0499694d">xed_operand_written</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
179 <a name="l00204"></a>00204 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#g7463fa65b041fb66790532ba6ea3ca50">xed_operand_written_only</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
180 <a name="l00207"></a>00207 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#g53d4f48a25de19a158ac617bd2302fcd">xed_operand_read_and_written</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
181 <a name="l00210"></a>00210 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#ge7b820b7db6c7437f1e0c6bb11510b10">xed_operand_conditional_read</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
182 <a name="l00213"></a>00213 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="group__DEC.html#gd6b80021a33c772fa74a038f17343562">xed_operand_conditional_write</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* p);
183 <a name="l00215"></a>00215 
184 <a name="l00216"></a>00216 
185 <a name="l00217"></a>00217 <span class="preprocessor">#include "<a class="code" href="xed-gen-table-defs_8h.html">xed-gen-table-defs.h</a>"</span>
186 <a name="l00218"></a>00218 <a class="code" href="xed-common-hdrs_8h.html#b2f4d3edd3fffb591ec6ed21e39880e1">XED_DLL_GLOBAL</a> <span class="keyword">extern</span> <span class="keyword">const</span>  <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a> <a class="code" href="xed-inst_8h.html#2c2e67fb67ef116ed797322e0236acc7">xed_operand</a>[<a class="code" href="xed-gen-table-defs_8h.html#96d71be5db3f232663b4cfc5057a84f9">XED_MAX_OPERAND_TABLE_NODES</a>];
187 <a name="l00219"></a>00219 
188 <a name="l00222"></a><a class="code" href="structxed__inst__s.html">00222</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> xed_inst_s {
189 <a name="l00223"></a><a class="code" href="structxed__inst__s.html#c0162a8564d341dffc8f7a7db3a3d021">00223</a>     <a class="code" href="xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> _iclass;
190 <a name="l00224"></a><a class="code" href="structxed__inst__s.html#5f03025fedbd54db22178b2dfca81a39">00224</a>     <a class="code" href="xed-category-enum_8h.html#3e6e23a35a7ad463e2422d7db98e49f5">xed_category_enum_t</a> _category;
191 <a name="l00225"></a><a class="code" href="structxed__inst__s.html#06a219ea4f2d6a034e6700902439ae3a">00225</a>     <a class="code" href="xed-extension-enum_8h.html#e7b9f64cdf123c5fda22bd10d5db9916">xed_extension_enum_t</a> _extension;
192 <a name="l00226"></a><a class="code" href="structxed__inst__s.html#d3cf551ea4e08ec767e775e9ed7d817c">00226</a>     <a class="code" href="unionxed__operand__bitvec__t.html">xed_operand_bitvec_t</a> _operand_bitvec;
193 <a name="l00227"></a>00227     <span class="comment">// The instruction form for this iclass.  The iform is a zero-based dense sequence for each iclass.</span>
194 <a name="l00228"></a><a class="code" href="structxed__inst__s.html#79118dae3b8cd033f196115a3468dc6e">00228</a>     xed_uint8_t _iform;
195 <a name="l00229"></a><a class="code" href="structxed__inst__s.html#56d07f8f78f5be97310c3b250643a0cc">00229</a>     <a class="code" href="xed-iform-enum_8h.html#f48986d6e090a75f7ab50e6d4a182e21">xed_iform_enum_t</a> _iform_enum;
196 <a name="l00230"></a>00230 
197 <a name="l00231"></a>00231     <span class="comment">//xed_instruction_fixed_bit_confirmer_fn_t _confirmer;</span>
198 <a name="l00232"></a>00232     
199 <a name="l00233"></a>00233     <span class="comment">// number of operands in the operands array</span>
200 <a name="l00234"></a><a class="code" href="structxed__inst__s.html#cb846ead9a58e1648b7df7b3ca3e2f3d">00234</a>     xed_uint8_t _noperands; 
201 <a name="l00235"></a>00235 
202 <a name="l00236"></a>00236     <span class="comment">// index into the xed_operand[] array of xed_operand_t structures</span>
203 <a name="l00237"></a><a class="code" href="structxed__inst__s.html#d932a45b296b79d73775862be60c204d">00237</a>     xed_uint32_t _operand_base; 
204 <a name="l00238"></a>00238     <span class="comment">// bit vector of values from the xed_attribute_enum_t</span>
205 <a name="l00239"></a><a class="code" href="structxed__inst__s.html#394b826f10fbcd7db2bcf9cafa8bfd5c">00239</a>     xed_uint32_t _attributes;
206 <a name="l00240"></a>00240 
207 <a name="l00241"></a>00241     <span class="comment">// rflags info -- index in to the 2 tables of flags information. </span>
208 <a name="l00242"></a>00242     <span class="comment">// If _flag_complex is true, then the data are in the</span>
209 <a name="l00243"></a>00243     <span class="comment">// xed_flags_complex_table[]. Otherwise, the data are in the</span>
210 <a name="l00244"></a>00244     <span class="comment">// xed_flags_simple_table[].</span>
211 <a name="l00245"></a><a class="code" href="structxed__inst__s.html#75158b2726e38f4a99e2b211e0e400dc">00245</a>     xed_uint16_t _flag_info_index; 
212 <a name="l00246"></a><a class="code" href="structxed__inst__s.html#fd0dc4d8e97704885645d2ea87fec92e">00246</a>     <a class="code" href="xed-types_8h.html#d355c921b747945a82d62233a599c7b5">xed_bool_t</a>  _flag_complex;
213 <a name="l00247"></a>00247 
214 <a name="l00248"></a><a class="code" href="structxed__inst__s.html#28c6d88881677fb400e4090e1870b572">00248</a>     xed_uint8_t _cpl;  <span class="comment">// the nominal CPL for the instruction.</span>
215 <a name="l00249"></a>00249 }  <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>;
216 <a name="l00250"></a>00250 
217 <a name="l00252"></a>00252 
218 <a name="l00253"></a>00253 
219 <a name="l00254"></a>00254 
220 <a name="l00255"></a>00255 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__DEC.html#gaf47d56bea81c3f7f815fab8cbc64a50">xed_inst_cpl</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) ;
221 <a name="l00256"></a>00256 
222 <a name="l00257"></a>00257 
223 <a name="l00258"></a>00258 <span class="comment">//These next few are not doxygen commented because I want people to use the higher</span>
224 <a name="l00259"></a>00259 <span class="comment">//level interface in xed-decoded-inst.h.</span>
225 <a name="l00260"></a><a class="code" href="xed-inst_8h.html#301a5ea38e37d72d3b2623392908d1b9">00260</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-iclass-enum_8h.html#d318511ae9cc50f102251b3c91a1ab9f">xed_iclass_enum_t</a> <a class="code" href="xed-inst_8h.html#301a5ea38e37d72d3b2623392908d1b9">xed_inst_iclass</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
226 <a name="l00261"></a>00261     <span class="keywordflow">return</span> p-&gt;_iclass;
227 <a name="l00262"></a>00262 }
228 <a name="l00263"></a>00263 
229 <a name="l00264"></a><a class="code" href="xed-inst_8h.html#b81b14e6d31cc013d3a0c414ee185093">00264</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-category-enum_8h.html#3e6e23a35a7ad463e2422d7db98e49f5">xed_category_enum_t</a> <a class="code" href="xed-inst_8h.html#b81b14e6d31cc013d3a0c414ee185093">xed_inst_category</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
230 <a name="l00265"></a>00265     <span class="keywordflow">return</span> p-&gt;_category;
231 <a name="l00266"></a>00266 }
232 <a name="l00267"></a>00267 
233 <a name="l00268"></a><a class="code" href="xed-inst_8h.html#561a6688c1f8666cef9d2182f299f5bc">00268</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-extension-enum_8h.html#e7b9f64cdf123c5fda22bd10d5db9916">xed_extension_enum_t</a> <a class="code" href="xed-inst_8h.html#561a6688c1f8666cef9d2182f299f5bc">xed_inst_extension</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
234 <a name="l00269"></a>00269     <span class="keywordflow">return</span> p-&gt;_extension;
235 <a name="l00270"></a>00270 }
236 <a name="l00271"></a>00271 
237 <a name="l00272"></a><a class="code" href="xed-inst_8h.html#9deca8dce62445ea1ff6b93cc8849b3c">00272</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-types_8h.html#0c92e8263b7ca02d8e4826ae5b79bb30">xed_uint_t</a> <a class="code" href="xed-inst_8h.html#9deca8dce62445ea1ff6b93cc8849b3c">xed_inst_iform</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
238 <a name="l00273"></a>00273     <span class="keywordflow">return</span> p-&gt;_iform;
239 <a name="l00274"></a>00274 }
240 <a name="l00275"></a><a class="code" href="xed-inst_8h.html#b13c4e9442dfe6624ed492f1c6521286">00275</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <a class="code" href="xed-iform-enum_8h.html#f48986d6e090a75f7ab50e6d4a182e21">xed_iform_enum_t</a> <a class="code" href="xed-inst_8h.html#b13c4e9442dfe6624ed492f1c6521286">xed_inst_iform_enum</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
241 <a name="l00276"></a>00276     <span class="keywordflow">return</span> p-&gt;_iform_enum;
242 <a name="l00277"></a>00277 }
243 <a name="l00278"></a>00278 
244 <a name="l00279"></a>00279 
245 <a name="l00282"></a><a class="code" href="group__DEC.html#g5808f0c3992221777a51c9356bbfc1cf">00282</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__DEC.html#g5808f0c3992221777a51c9356bbfc1cf">xed_inst_noperands</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
246 <a name="l00283"></a>00283     <span class="keywordflow">return</span> p-&gt;_noperands;
247 <a name="l00284"></a>00284 }
248 <a name="l00285"></a>00285 
249 <a name="l00288"></a><a class="code" href="group__DEC.html#g05c6c3704a2be54cdced61f99437c146">00288</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> <span class="keyword">const</span> <a class="code" href="group__DEC.html#g6e11e56c314f3035be79171df2f6938f">xed_operand_t</a>* <a class="code" href="group__DEC.html#g05c6c3704a2be54cdced61f99437c146">xed_inst_operand</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)    {
250 <a name="l00289"></a>00289     <a class="code" href="xed-util_8h.html#14e6b8d2d319061ff7e517323aa4776f">xed_assert</a>(i &lt;  p-&gt;_noperands);
251 <a name="l00290"></a>00290     <span class="keywordflow">return</span> &amp;(<a class="code" href="xed-inst_8h.html#2c2e67fb67ef116ed797322e0236acc7">xed_operand</a>[p-&gt;_operand_base + i]);
252 <a name="l00291"></a>00291 }
253 <a name="l00292"></a>00292 
254 <a name="l00293"></a>00293 
255 <a name="l00294"></a>00294 
256 <a name="l00295"></a>00295 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> xed_uint32_t <a class="code" href="xed-inst_8h.html#00e6626154ca2a0e8f3f839149123650">xed_inst_flag_info_index</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p);
257 <a name="l00296"></a>00296 
258 <a name="l00298"></a>00298 
259 <a name="l00300"></a>00300 
260 <a name="l00301"></a>00301 
261 <a name="l00302"></a>00302 
262 <a name="l00303"></a><a class="code" href="group__DEC.html#gdae8e18eaeb265c2aab6fc82a216e5de">00303</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> xed_uint32_t <a class="code" href="group__DEC.html#gdae8e18eaeb265c2aab6fc82a216e5de">xed_inst_get_attribute</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p, <a class="code" href="xed-attribute-enum_8h.html#848d4cf396be5a647413e94bc6f0a383">xed_attribute_enum_t</a> attr) {
263 <a name="l00304"></a>00304     <span class="keywordflow">if</span> (p-&gt;_attributes &amp; attr) 
264 <a name="l00305"></a>00305         <span class="keywordflow">return</span> 1;
265 <a name="l00306"></a>00306     <span class="keywordflow">return</span> 0;
266 <a name="l00307"></a>00307 }
267 <a name="l00308"></a>00308 
268 <a name="l00311"></a><a class="code" href="group__DEC.html#gfa48c095dbf6e00636253f974b2093d1">00311</a> <span class="keyword">static</span> <a class="code" href="xed-portability_8h.html#816cca0d95c86100144b556e68e836b7">XED_INLINE</a> xed_uint32_t <a class="code" href="group__DEC.html#gfa48c095dbf6e00636253f974b2093d1">xed_inst_get_attributes</a>(<span class="keyword">const</span> <a class="code" href="group__DEC.html#g2b28c31e1e83e74ef5f613b38e0cc0ec">xed_inst_t</a>* p) {
269 <a name="l00312"></a>00312     <span class="keywordflow">return</span> p-&gt;_attributes;
270 <a name="l00313"></a>00313 }
271 <a name="l00316"></a>00316 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__DEC.html#g1dee8af51e3d8ed5a6c5dac13780be9e">xed_attribute_max</a>();
272 <a name="l00317"></a>00317 
273 <a name="l00321"></a>00321 <a class="code" href="xed-common-hdrs_8h.html#029d5ee2957ac2af5e2b75ec09f1daf9">XED_DLL_EXPORT</a> <a class="code" href="xed-attribute-enum_8h.html#848d4cf396be5a647413e94bc6f0a383">xed_attribute_enum_t</a> <a class="code" href="group__DEC.html#g38f0b100d724d97d80a8291a494dde06">xed_attribute</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i);
274 <a name="l00322"></a>00322 
275 <a name="l00324"></a>00324 
276 <a name="l00325"></a>00325 <span class="preprocessor">#endif</span>
277 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu May 15 03:15:09 2008 for XED2 by&nbsp;
278 <a href="http://www.doxygen.org/index.html">
279 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
280 </body>
281 </html>