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.
§Features
bindgen
- Don’t use the bundled bindings files and instead regenerate rust bindings from scratch at compile time. You should never need to enable this manually but it will be enabled by other features.
Structs§
- @ingroup ISASET
- @ingroup CPUID @brief a data structure representing a CPUID record
- @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
- < 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.
- < Some registers must not match for this instruction (e.g. source with dest or dest with dest).
- < 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