X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=misc%2Fdecoder_test%2FXED2%2Fdoc%2Fhtml%2Fxed-operand-values-interface_8h-source.html;fp=misc%2Fdecoder_test%2FXED2%2Fdoc%2Fhtml%2Fxed-operand-values-interface_8h-source.html;h=bd1a425cd95bcb6fe00eb40f26b54267b069a237;hp=0000000000000000000000000000000000000000;hb=ddc16b0737cf58f7aa90a69c6652cdf4090aec51;hpb=626595465a2c6987606a6bc697df65130ad8c2d3 diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h-source.html new file mode 100644 index 0000000..bd1a425 --- /dev/null +++ b/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h-source.html @@ -0,0 +1,335 @@ + +
+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_OPERAND_VALUES_INTERFACE_H_) +00037 # define _XED_OPERAND_VALUES_INTERFACE_H_ +00038 +00039 #include "xed-common-hdrs.h" +00040 #include "xed-common-defs.h" +00041 #include "xed-portability.h" +00042 #include "xed-util.h" +00043 #include "xed-types.h" +00044 #include "xed-state.h" // a generated file +00045 #include "xed-operand-enum.h" // a generated file +00046 #include "xed-operand-storage.h" +00047 #include "xed-reg-enum.h" // generated +00048 #include "xed-iclass-enum.h" // generated +00050 +00051 +00052 +00053 XED_DLL_EXPORT void xed_operand_values_init(xed_operand_values_t* p); +00054 +00057 XED_DLL_EXPORT void xed_operand_values_init_set_mode(xed_operand_values_t* p, +00058 const xed_state_t* dstate); +00062 XED_DLL_EXPORT void xed_operand_values_init_keep_mode( xed_operand_values_t* dst, +00063 const xed_operand_values_t* src ); +00065 +00066 // Returns the raw operand fields. Do not use this. +00067 XED_DLL_EXPORT xed_uint32_t +00068 xed_operand_values_get_operand_decider(const xed_operand_values_t* p, +00069 xed_operand_enum_t operand_decider_index) ; +00070 +00071 +00074 +00075 +00076 +00077 XED_DLL_EXPORT void xed_operand_values_dump(const xed_operand_values_t* ov, char* buf, int buflen); +00080 XED_DLL_EXPORT void xed_operand_values_print_short(const xed_operand_values_t* ov, char* buf, int buflen); +00082 +00084 +00085 +00086 +00087 +00088 +00089 XED_DLL_EXPORT xed_bool_t +00090 xed_operand_values_has_real_rep(const xed_operand_values_t* p); +00093 XED_DLL_EXPORT xed_bool_t +00094 xed_operand_values_has_rep_prefix(const xed_operand_values_t* p); +00097 XED_DLL_EXPORT xed_bool_t +00098 xed_operand_values_has_repne_prefix(const xed_operand_values_t* p); +00100 +00105 XED_DLL_EXPORT xed_bool_t +00106 xed_operand_values_get_atomic(const xed_operand_values_t* p); +00107 +00110 XED_DLL_EXPORT xed_bool_t +00111 xed_operand_values_has_lock_prefix(const xed_operand_values_t* p); +00112 +00118 XED_DLL_EXPORT xed_bool_t +00119 xed_operand_values_using_default_segment(const xed_operand_values_t* p, unsigned int i); +00120 +00121 +00122 +00127 XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width(const xed_operand_values_t* p); +00130 XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width(const xed_operand_values_t* p); +00131 +00132 +00135 XED_DLL_EXPORT xed_bool_t +00136 xed_operand_values_has_memory_displacement(const xed_operand_values_t* p); +00139 XED_DLL_EXPORT xed_bool_t +00140 xed_operand_values_has_branch_displacement(const xed_operand_values_t* p); +00143 XED_DLL_EXPORT xed_bool_t +00144 xed_operand_values_has_displacement(const xed_operand_values_t* p); +00145 +00146 +00149 XED_DLL_EXPORT xed_bool_t +00150 xed_operand_values_get_displacement_for_memop(const xed_operand_values_t* p); +00151 +00154 XED_DLL_EXPORT xed_bool_t +00155 xed_operand_values_has_immediate(const xed_operand_values_t* p); +00156 +00157 +00162 XED_DLL_EXPORT xed_bool_t +00163 xed_operand_values_has_disp(const xed_operand_values_t* p); +00164 +00166 XED_DLL_EXPORT xed_bool_t +00167 xed_operand_values_has_address_size_prefix(const xed_operand_values_t* p); +00169 XED_DLL_EXPORT xed_bool_t +00170 xed_operand_values_has_operand_size_prefix(const xed_operand_values_t* p); +00171 +00172 #if 0 +00173 XED_DLL_EXPORT xed_bool_t +00174 xed_operand_values_has_refining_66_prefix(const xed_operand_values_t* p); +00175 XED_DLL_EXPORT xed_bool_t +00176 xed_operand_values_has_refining_f2_prefix(const xed_operand_values_t* p); +00177 XED_DLL_EXPORT xed_bool_t +00178 xed_operand_values_has_refining_f3_prefix(const xed_operand_values_t* p); +00179 #endif +00180 +00182 XED_DLL_EXPORT xed_bool_t +00183 xed_operand_values_has_segment_prefix(const xed_operand_values_t* p); +00184 +00187 XED_DLL_EXPORT xed_reg_enum_t +00188 xed_operand_values_segment_prefix(const xed_operand_values_t* p); +00189 +00191 XED_DLL_EXPORT xed_bool_t +00192 xed_operand_values_is_prefetch(const xed_operand_values_t* p); +00193 +00195 XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode(const xed_operand_values_t* p); +00196 +00198 +00199 +00200 XED_DLL_EXPORT xed_bool_t +00201 xed_operand_values_accesses_memory(const xed_operand_values_t* p); +00202 +00204 XED_DLL_EXPORT unsigned int +00205 xed_operand_values_number_of_memory_operands(const xed_operand_values_t* p); +00206 +00208 XED_DLL_EXPORT unsigned int +00209 xed_operand_values_get_memory_operand_length(const xed_operand_values_t* p, +00210 unsigned int memop_idx); +00211 +00213 XED_DLL_EXPORT xed_reg_enum_t +00214 xed_operand_values_get_base_reg(const xed_operand_values_t* p,unsigned int memop_idx); +00215 +00217 XED_DLL_EXPORT xed_reg_enum_t +00218 xed_operand_values_get_index_reg(const xed_operand_values_t* p,unsigned int memop_idx); +00219 +00221 XED_DLL_EXPORT xed_reg_enum_t +00222 xed_operand_values_get_seg_reg(const xed_operand_values_t* p,unsigned int memop_idx); +00223 +00225 XED_DLL_EXPORT unsigned int +00226 xed_operand_values_get_scale(const xed_operand_values_t* p); +00227 +00231 XED_DLL_EXPORT xed_bool_t +00232 xed_operand_values_memop_without_modrm(const xed_operand_values_t* p); +00235 XED_DLL_EXPORT xed_bool_t +00236 xed_operand_values_has_modrm_byte(const xed_operand_values_t* p); +00237 +00240 XED_DLL_EXPORT xed_bool_t +00241 xed_operand_values_has_sib_byte(const xed_operand_values_t* p); +00243 +00245 XED_DLL_EXPORT xed_bool_t +00246 xed_operand_values_branch_not_taken_hint(const xed_operand_values_t* p); +00248 XED_DLL_EXPORT xed_bool_t +00249 xed_operand_values_branch_taken_hint(const xed_operand_values_t* p); +00250 +00252 XED_DLL_EXPORT xed_bool_t +00253 xed_operand_values_is_nop(const xed_operand_values_t* p); +00254 +00255 +00257 +00258 +00259 XED_DLL_EXPORT xed_int64_t +00260 xed_operand_values_get_immediate_int64(const xed_operand_values_t* p); +00261 +00263 XED_DLL_EXPORT xed_uint64_t +00264 xed_operand_values_get_immediate_uint64(const xed_operand_values_t* p); +00265 +00268 XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed(const xed_operand_values_t* p); +00269 +00270 +00272 XED_DLL_EXPORT xed_uint8_t +00273 xed_operand_values_get_immediate_byte(const xed_operand_values_t* p,unsigned int i); +00274 +00276 XED_DLL_EXPORT xed_uint8_t +00277 xed_operand_values_get_second_immediate(const xed_operand_values_t* p); +00279 +00281 +00282 +00283 +00284 XED_DLL_EXPORT xed_uint32_t +00285 xed_operand_values_get_memory_displacement_length(const xed_operand_values_t* p); +00288 XED_DLL_EXPORT xed_uint32_t +00289 xed_operand_values_get_memory_displacement_length_bits(const xed_operand_values_t* p); +00290 +00292 XED_DLL_EXPORT xed_int64_t +00293 xed_operand_values_get_memory_displacement_int64(const xed_operand_values_t* p); +00294 +00296 XED_DLL_EXPORT xed_uint8_t +00297 xed_operand_values_get_memory_displacement_byte(const xed_operand_values_t* p,unsigned int i); +00299 +00301 +00302 +00303 +00304 XED_DLL_EXPORT xed_uint32_t +00305 xed_operand_values_get_branch_displacement_length(const xed_operand_values_t* p); +00308 XED_DLL_EXPORT xed_uint32_t +00309 xed_operand_values_get_branch_displacement_length_bits(const xed_operand_values_t* p); +00310 +00312 XED_DLL_EXPORT xed_int32_t +00313 xed_operand_values_get_branch_displacement_int32(const xed_operand_values_t* p); +00314 +00316 XED_DLL_EXPORT xed_uint8_t +00317 xed_operand_values_get_branch_displacement_byte(const xed_operand_values_t* p,unsigned int i); +00319 +00320 +00322 XED_DLL_EXPORT xed_iclass_enum_t +00323 xed_operand_values_get_iclass(const xed_operand_values_t* p); +00324 +00326 // ENCODE API +00329 +00330 +00331 XED_DLL_EXPORT void xed_operand_values_zero_immediate(xed_operand_values_t* p); +00333 XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement(xed_operand_values_t* p); +00335 XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement(xed_operand_values_t* p); +00336 +00338 XED_DLL_EXPORT void xed_operand_values_set_lock(xed_operand_values_t* p); +00340 XED_DLL_EXPORT void xed_operand_values_zero_segment_override(xed_operand_values_t* p); +00341 +00342 +00344 XED_DLL_EXPORT void +00345 xed_operand_values_set_iclass(xed_operand_values_t* p,xed_iclass_enum_t iclass); +00346 +00348 XED_DLL_EXPORT void +00349 xed_operand_values_set_effective_operand_width(xed_operand_values_t* p,unsigned int width); +00350 +00352 XED_DLL_EXPORT void +00353 xed_operand_values_set_memory_operand_length(xed_operand_values_t* p,unsigned int memop_length); +00354 +00355 +00358 XED_DLL_EXPORT void +00359 xed_operand_values_set_memory_displacement(xed_operand_values_t* p,xed_int64_t x, unsigned int len); +00362 XED_DLL_EXPORT void +00363 xed_operand_values_set_memory_displacement_bits(xed_operand_values_t* p,xed_int64_t x, unsigned int len_bits); +00364 +00367 XED_DLL_EXPORT void xed_operand_values_set_relbr(xed_operand_values_t* p); +00368 +00371 XED_DLL_EXPORT void +00372 xed_operand_values_set_branch_displacement(xed_operand_values_t* p,xed_int32_t x, unsigned int len); +00375 XED_DLL_EXPORT void +00376 xed_operand_values_set_branch_displacement_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int len_bits); +00377 +00380 XED_DLL_EXPORT void +00381 xed_operand_values_set_immediate_signed(xed_operand_values_t* p,xed_int32_t x, unsigned int bytes); +00384 XED_DLL_EXPORT void +00385 xed_operand_values_set_immediate_signed_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int bits); +00386 +00387 +00390 XED_DLL_EXPORT void +00391 xed_operand_values_set_immediate_unsigned(xed_operand_values_t* p,xed_uint64_t x, unsigned int bytes); +00394 XED_DLL_EXPORT void +00395 xed_operand_values_set_immediate_unsigned_bits(xed_operand_values_t* p,xed_uint64_t x, unsigned int bits); +00396 +00397 +00398 +00400 XED_DLL_EXPORT void xed_operand_values_set_base_reg(xed_operand_values_t* p, +00401 unsigned int memop_idx, +00402 xed_reg_enum_t new_base); +00403 +00405 XED_DLL_EXPORT void xed_operand_values_set_seg_reg(xed_operand_values_t* p, +00406 unsigned int memop_idx, +00407 xed_reg_enum_t new_seg); +00408 +00410 XED_DLL_EXPORT void xed_operand_values_set_index_reg(xed_operand_values_t* p, +00411 unsigned int memop_idx, +00412 xed_reg_enum_t new_index); +00413 +00415 XED_DLL_EXPORT void xed_operand_values_set_scale(xed_operand_values_t* p, +00416 xed_uint_t memop_idx, +00417 xed_uint_t new_scale); +00418 +00419 +00423 XED_DLL_EXPORT void +00424 xed_operand_values_set_operand_reg(xed_operand_values_t* p, +00425 xed_operand_enum_t operand_name, +00426 xed_reg_enum_t reg_name); +00427 +00429 #endif +00430 +00431 //Local Variables: +00432 //pref: "../../xed-operand-values-interface.c" +00433 //End: +