Crate xed_sys[−][src]
Expand description
Intel XED Bindings.
For the real docs see: https://intelxed.github.io
Note that xed_tables_init()
must be called before
using the library.
Structs
@ingroup ISASET
@ingroup DEC The main container for instructions. After decode, it holds an array of operands with derived information from decode and also valid #xed_inst_t pointer which describes the operand templates and the operand order. See @ref DEC for API documentation.
@ingroup FLAGS Associated with each flag field there can be one action.
Options for the disasembly formatting functions. Set once during initialization by a calling #xed_format_set_options @ingroup PRINT
@ingroup IFORM Statically available information about iforms. Values are returned by #xed_iform_map().
@ingroup DEC constant information about a decoded instruction form, including the pointer to the constant operand properties #xed_operand_t for this instruction form.
@ingroup DEC Constant information about an individual generic operand, like an operand template, describing the operand properties. See @ref DEC for API information.
@ingroup PRINT This contains the information used by the various disassembly printers. Call xed_init_print_info to initialize the fields. Then change the required and optional fields when required.
@ingroup FLAGS A collection of #xed_flag_action_t’s and unions of read and written flags
Encapsulates machine modes for decoder/encoder requests. It specifies the machine operating mode as a #xed_machine_mode_enum_t for decoding and encoding. The machine mode corresponds to the default data operand width for that mode. For all modes other than the 64b long mode (XED_MACHINE_MODE_LONG_64), a default addressing width, and a stack addressing width must be supplied of type #xed_address_width_enum_t . @ingroup INIT
Constants
< 16b addressing
< 32b addressing
< 64b addressing
< EVEX.LL must not ==3 unless using embedded rounding
< An illegal value for the EVEX.U bit was present in the instruction.
< EVEX.V’=0 was detected in a non-64b mode instruction.
< EVEX.Z!=0 when EVEX.aaa==0
< A 66, F2 or F3 prefix was found where none is allowed.
< A lock prefix was found where none is allowed.
< An illegal value for the MAP field was detected in the instruction.
< Memop indices must be 0 or 1.
< XED could not decode the given instruction because an invalid register encoding was used.
< Source registers must not match the destination register for this instruction.
< An F2 or F3 prefix was found where none is allowed.
< A REX prefix was found where none is allowed.
< There were not enough bytes in the given buffer
< The register or segment callback for xed_agen experienced a problem
< The index, dest and mask regs for AVX2 gathers must be different.
< XED could not decode the given instruction
< Full decode of instruction would exeed 15B.
< The instruciton is not valid for the specified chip
< The instruction was not valid for the specified mode
< There was no error
< One or both of the callbacks for xed_agen were missing.
< The output pointer for xed_agen was zero
< value will be zero (write)
< value will be 1 (write)
< value comes from AH (write)
< modification (write)
< value comes from the stack (write)
< test (read)
< undefined (treated as a write)
< alignment check
< auxiliary flag
< carry flag
< direction flag
< x87 FC0 flag
< x87 FC1 flag
< x87 FC2 flag
< x87 FC3 flag
< ID flag
< interrupt flag
< I/O privilege level
< nested task
<< overflow flag
< parity flag
< resume flag
< sign flag
< traf flag
< virtual interrupt flag
< virtual interrupt pending
< virtual-8086 mode
< zero flag