X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=misc%2Fdecoder_test%2FXED2%2Fdoc%2Fhtml%2Fxed-inst_8h-source.html;fp=misc%2Fdecoder_test%2FXED2%2Fdoc%2Fhtml%2Fxed-inst_8h-source.html;h=0000000000000000000000000000000000000000;hp=e1b2883a1fc44358bf1e7e1cf9a94295254d56f2;hb=7a6cd49101201e207daf7113a9048193835cebaf;hpb=320320a1c8681f2d8258a03dd087b3aed18b48a1 diff --git a/misc/decoder_test/XED2/doc/html/xed-inst_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-inst_8h-source.html deleted file mode 100644 index e1b2883..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-inst_8h-source.html +++ /dev/null @@ -1,281 +0,0 @@ - -
-00001 /*BEGIN_LEGAL -00002 Copyright (c) 2007, Intel Corp. -00003 All rights reserved. -00004 -00005 Redistribution and use in source and binary forms, with or without -00006 modification, are permitted provided that the following conditions are -00007 met: -00008 -00009 * Redistributions of source code must retain the above copyright -00010 notice, this list of conditions and the following disclaimer. -00011 -00012 * Redistributions in binary form must reproduce the above -00013 copyright notice, this list of conditions and the following -00014 disclaimer in the documentation and/or other materials provided -00015 with the distribution. -00016 -00017 * Neither the name of Intel Corporation nor the names of its -00018 contributors may be used to endorse or promote products derived -00019 from this software without specific prior written permission. -00020 -00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -00032 END_LEGAL */ -00035 -00036 #if !defined(_XED_INST_H_) -00037 # define _XED_INST_H_ -00038 -00039 #include "xed-util.h" -00040 #include "xed-portability.h" -00041 #include "xed-category-enum.h" -00042 #include "xed-extension-enum.h" -00043 #include "xed-iclass-enum.h" -00044 #include "xed-operand-enum.h" -00045 #include "xed-operand-visibility-enum.h" -00046 #include "xed-operand-action-enum.h" -00047 #include "xed-operand-type-enum.h" -00048 #include "xed-nonterminal-enum.h" // a generated file -00049 #include "xed-operand-width-enum.h" // a generated file -00050 #include "xed-reg-enum.h" // a generated file -00051 #include "xed-attribute-enum.h" // a generated file -00052 #include "xed-iform-enum.h" // a generated file -00053 #include "xed-operand-bitvec.h" // a generated file -00054 -00055 -00056 struct xed_decoded_inst_s; //fwd-decl -00057 -00058 typedef void (*xed_operand_extractor_fn_t)(struct xed_decoded_inst_s* xds); -00059 //typedef xed_bool_t (*xed_instruction_fixed_bit_confirmer_fn_t)(struct xed_decoded_inst_s* xds); -00060 -00061 -00064 typedef struct XED_DLL_EXPORT xed_operand_s -00065 { -00066 xed_operand_enum_t _name; -00067 -00068 xed_operand_visibility_enum_t _operand_visibility; -00069 -00070 xed_operand_action_enum_t _rw; -00071 xed_operand_width_enum_t _oc2; -00072 -00073 xed_operand_type_enum_t _type; -00074 union { -00075 xed_uint32_t _imm; -00076 xed_nonterminal_enum_t _nt; // for nt_lookup_fn's -00077 xed_reg_enum_t _reg; -00078 } _u; -00079 } xed_operand_t; -00080 -00082 -00083 -00084 static XED_INLINE xed_operand_enum_t xed_operand_name(const xed_operand_t* p) { -00085 return p->_name; -00086 } -00087 -00088 -00090 static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility( const xed_operand_t* p) { -00091 return p->_operand_visibility; -00092 } -00093 -00094 -00098 static XED_INLINE xed_operand_type_enum_t xed_operand_type(const xed_operand_t* p) { -00099 return p->_type; -00100 } -00101 -00102 -00104 static XED_INLINE xed_operand_width_enum_t xed_operand_width(const xed_operand_t* p) { -00105 return p->_oc2; -00106 } -00107 -00109 static XED_INLINE -00110 xed_nonterminal_enum_t xed_operand_nonterminal_name(const xed_operand_t* p) { -00111 return p->_u._nt; -00112 } -00113 -00123 static XED_INLINE xed_reg_enum_t xed_operand_reg(const xed_operand_t* p) { -00124 return p->_u._reg; -00125 } -00126 -00127 -00128 -00139 static XED_INLINE xed_uint_t xed_operand_template_is_register(const xed_operand_t* p) { -00140 return p->_type == XED_OPERAND_TYPE_NT_LOOKUP_FN || p->_type == XED_OPERAND_TYPE_REG; -00141 } -00142 -00146 static XED_INLINE xed_uint32_t xed_operand_imm(const xed_operand_t* p) { -00147 return p->_u._imm; -00148 } -00149 -00155 XED_DLL_EXPORT void xed_operand_print(const xed_operand_t* p, char* buf, int buflen); -00157 -00158 -00159 -00160 -00161 -00162 -00163 -00164 -00165 -00166 static XED_INLINE xed_uint_t xed_operand_is_register(xed_operand_enum_t name) { -00167 return name >= XED_OPERAND_REG0 && name <= XED_OPERAND_REG15; -00168 } -00174 static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register(xed_operand_enum_t name) { -00175 return ( name == XED_OPERAND_BASE0 || -00176 name == XED_OPERAND_INDEX || -00177 name == XED_OPERAND_SEG0 || -00178 name == XED_OPERAND_BASE1 || -00179 name == XED_OPERAND_SEG1 ); -00180 } -00181 -00183 -00185 -00186 -00187 -00188 -00189 static XED_INLINE xed_operand_action_enum_t xed_operand_rw(const xed_operand_t* p) { -00190 return p->_rw; -00191 } -00192 -00195 XED_DLL_EXPORT xed_uint_t xed_operand_read(const xed_operand_t* p); -00198 XED_DLL_EXPORT xed_uint_t xed_operand_read_only(const xed_operand_t* p); -00201 XED_DLL_EXPORT xed_uint_t xed_operand_written(const xed_operand_t* p); -00204 XED_DLL_EXPORT xed_uint_t xed_operand_written_only(const xed_operand_t* p); -00207 XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written(const xed_operand_t* p); -00210 XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read(const xed_operand_t* p); -00213 XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write(const xed_operand_t* p); -00215 -00216 -00217 #include "xed-gen-table-defs.h" -00218 XED_DLL_GLOBAL extern const xed_operand_t xed_operand[XED_MAX_OPERAND_TABLE_NODES]; -00219 -00222 typedef struct XED_DLL_EXPORT xed_inst_s { -00223 xed_iclass_enum_t _iclass; -00224 xed_category_enum_t _category; -00225 xed_extension_enum_t _extension; -00226 xed_operand_bitvec_t _operand_bitvec; -00227 // The instruction form for this iclass. The iform is a zero-based dense sequence for each iclass. -00228 xed_uint8_t _iform; -00229 xed_iform_enum_t _iform_enum; -00230 -00231 //xed_instruction_fixed_bit_confirmer_fn_t _confirmer; -00232 -00233 // number of operands in the operands array -00234 xed_uint8_t _noperands; -00235 -00236 // index into the xed_operand[] array of xed_operand_t structures -00237 xed_uint32_t _operand_base; -00238 // bit vector of values from the xed_attribute_enum_t -00239 xed_uint32_t _attributes; -00240 -00241 // rflags info -- index in to the 2 tables of flags information. -00242 // If _flag_complex is true, then the data are in the -00243 // xed_flags_complex_table[]. Otherwise, the data are in the -00244 // xed_flags_simple_table[]. -00245 xed_uint16_t _flag_info_index; -00246 xed_bool_t _flag_complex; -00247 -00248 xed_uint8_t _cpl; // the nominal CPL for the instruction. -00249 } xed_inst_t; -00250 -00252 -00253 -00254 -00255 XED_DLL_EXPORT unsigned int xed_inst_cpl(const xed_inst_t* p) ; -00256 -00257 -00258 //These next few are not doxygen commented because I want people to use the higher -00259 //level interface in xed-decoded-inst.h. -00260 static XED_INLINE xed_iclass_enum_t xed_inst_iclass(const xed_inst_t* p) { -00261 return p->_iclass; -00262 } -00263 -00264 static XED_INLINE xed_category_enum_t xed_inst_category(const xed_inst_t* p) { -00265 return p->_category; -00266 } -00267 -00268 static XED_INLINE xed_extension_enum_t xed_inst_extension(const xed_inst_t* p) { -00269 return p->_extension; -00270 } -00271 -00272 static XED_INLINE xed_uint_t xed_inst_iform(const xed_inst_t* p) { -00273 return p->_iform; -00274 } -00275 static XED_INLINE xed_iform_enum_t xed_inst_iform_enum(const xed_inst_t* p) { -00276 return p->_iform_enum; -00277 } -00278 -00279 -00282 static XED_INLINE unsigned int xed_inst_noperands(const xed_inst_t* p) { -00283 return p->_noperands; -00284 } -00285 -00288 static XED_INLINE const xed_operand_t* xed_inst_operand(const xed_inst_t* p, unsigned int i) { -00289 xed_assert(i < p->_noperands); -00290 return &(xed_operand[p->_operand_base + i]); -00291 } -00292 -00293 -00294 -00295 XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index(const xed_inst_t* p); -00296 -00298 -00300 -00301 -00302 -00303 static XED_INLINE xed_uint32_t xed_inst_get_attribute(const xed_inst_t* p, xed_attribute_enum_t attr) { -00304 if (p->_attributes & attr) -00305 return 1; -00306 return 0; -00307 } -00308 -00311 static XED_INLINE xed_uint32_t xed_inst_get_attributes(const xed_inst_t* p) { -00312 return p->_attributes; -00313 } -00316 XED_DLL_EXPORT unsigned int xed_attribute_max(); -00317 -00321 XED_DLL_EXPORT xed_attribute_enum_t xed_attribute(unsigned int i); -00322 -00324 -00325 #endif -