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