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:08 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-common-defs.h</h1><a href="xed-common-defs_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="l00036"></a>00036
63 <a name="l00037"></a>00037
64 <a name="l00038"></a>00038
65 <a name="l00039"></a>00039 <span class="preprocessor">#ifndef _XED_COMMON_DEFS_H_</span>
66 <a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor"># define _XED_COMMON_DEFS_H_</span>
67 <a name="l00041"></a>00041 <span class="preprocessor"></span>
68 <a name="l00043"></a>00043
69 <a name="l00044"></a><a class="code" href="xed-common-defs_8h.html#85ccc37573feb213b4e236440bb83ff0">00044</a> <span class="preprocessor">#define XED_MAX_OPERANDS 11</span>
70 <a name="l00045"></a><a class="code" href="xed-common-defs_8h.html#0c045071ff88f644f56baad439a8a79d">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define XED_MAX_NONTERMINALS_PER_INSTRUCTION 20 // FIXME somewhat arbitrary</span>
71 <a name="l00046"></a>00046 <span class="preprocessor"></span>
72 <a name="l00047"></a><a class="code" href="xed-common-defs_8h.html#70d7ef4cb7b3c083e3c7e036dc5b6846">00047</a> <span class="preprocessor">#define XED_MAX_DISPLACEMENT_BYTES 8 // for most things it is 4, but one 64b mov allows 8</span>
73 <a name="l00048"></a><a class="code" href="xed-common-defs_8h.html#77804e53f494e2623103f337f30ec3bf">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define XED_MAX_IMMEDIATE_BYTES 8 // for most things it is max 4, but one 64b mov allows 8.</span>
74 <a name="l00049"></a>00049 <span class="preprocessor"></span>
75 <a name="l00050"></a><a class="code" href="xed-common-defs_8h.html#214b18e98040dbace0d9e0a0a7937484">00050</a> <span class="preprocessor">#define XED_MAX_INSTRUCTION_BYTES 15</span>
76 <a name="l00051"></a>00051 <span class="preprocessor"></span>
77 <a name="l00052"></a>00052
78 <a name="l00053"></a><a class="code" href="xed-common-defs_8h.html#8a127f35f53251f46b438a1fea0cb08c">00053</a> <span class="preprocessor">#define XED_BYTE_MASK(x) ((x) & 0xFF)</span>
79 <a name="l00054"></a><a class="code" href="xed-common-defs_8h.html#243a8c4c8b3cd7f5658455c10dc28777">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define XED_BYTE_CAST(x) (STATIC_CAST(xed_uint8_t,x))</span>
80 <a name="l00055"></a>00055 <span class="preprocessor"></span>
81 <a name="l00057"></a>00057 <span class="comment">// used for defining bit-field widths</span>
82 <a name="l00058"></a>00058 <span class="comment">// Microsoft's compiler treats enumerations as signed and if you pack</span>
83 <a name="l00059"></a>00059 <span class="comment">// the bit-field with values, when you assign it to a full-width enumeration,</span>
84 <a name="l00060"></a>00060 <span class="comment">// you get junk-- a big negative number. This compensates for cases that I've</span>
85 <a name="l00061"></a>00061 <span class="comment">// encountered</span>
86 <a name="l00062"></a>00062 <span class="preprocessor">#if defined(__GNUC__)</span>
87 <a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor"># define XED_BIT_FIELD_PSEUDO_WIDTH4 4</span>
88 <a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor"># define XED_BIT_FIELD_PSEUDO_WIDTH8 8</span>
89 <a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#else</span>
90 <a name="l00066"></a><a class="code" href="xed-common-defs_8h.html#a69f44ab2bb9f5b539a2ec4481e55861">00066</a> <span class="preprocessor"></span><span class="preprocessor"># define XED_BIT_FIELD_PSEUDO_WIDTH4 8</span>
91 <a name="l00067"></a><a class="code" href="xed-common-defs_8h.html#d63f3c2e5d31b6e53ec9025fa1790436">00067</a> <span class="preprocessor"></span><span class="preprocessor"># define XED_BIT_FIELD_PSEUDO_WIDTH8 16</span>
92 <a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
93 <a name="l00069"></a>00069 <span class="preprocessor"></span>
94 <a name="l00070"></a>00070
95 <a name="l00071"></a>00071 <span class="preprocessor">#endif</span>
96 <a name="l00072"></a>00072 <span class="preprocessor"></span>
97 <a name="l00073"></a>00073
98 <a name="l00074"></a>00074
99 <a name="l00075"></a>00075
100 <a name="l00076"></a>00076
101 <a name="l00077"></a>00077
102 <a name="l00078"></a>00078
103 <a name="l00079"></a>00079
104 <a name="l00080"></a>00080
105 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu May 15 03:15:08 2008 for XED2 by
106 <a href="http://www.doxygen.org/index.html">
107 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>