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">
7 <!-- Generated by Doxygen 1.4.6 -->
10 <li><a href="main.html"><span>Main Page</span></a></li>
11 <li><a href="modules.html"><span>Modules</span></a></li>
12 <li><a href="classes.html"><span>Data Structures</span></a></li>
13 <li id="current"><a href="files.html"><span>Files</span></a></li>
15 <form action="search.php" method="get">
16 <table cellspacing="0" cellpadding="0" border="0">
18 <td><label> <u>S</u>earch for </label></td>
19 <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
27 <li><a href="files.html"><span>File List</span></a></li>
28 <li><a href="globals.html"><span>Globals</span></a></li>
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->_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->_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->_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->_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->_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->_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->_type == <a class="code" href="xed-operand-type-enum_8h.html#7f9198331fe1015a2df65f7b42aa43a86c08de43a20229d27939a21afbd5e364">XED_OPERAND_TYPE_NT_LOOKUP_FN</a> || p->_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->_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 >= <a class="code" href="xed-operand-enum_8h.html#09c2a35d8bb7bfe68bb3d34b0a5e011a4a8a5c45ea6041f25d7b98e3892bb389">XED_OPERAND_REG0</a> && name <= <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->_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->_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->_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->_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->_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->_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->_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 < p->_noperands);
251 <a name="l00290"></a>00290 <span class="keywordflow">return</span> &(<a class="code" href="xed-inst_8h.html#2c2e67fb67ef116ed797322e0236acc7">xed_operand</a>[p->_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->_attributes & 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->_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
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>