package xedbindings

  1. Overview
  2. Docs

Module Xed.DecodedInstSource

include module type of struct include Bind.DecodedInst end
Sourceval avx512_dest_elements : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval classify_amx : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval classify_apx : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval classify_avx : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval classify_avx512 : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval classify_avx512_maskop : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval classify_sse : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval conditionally_writes_registers : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval get_branch_displacement : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t
Sourceval get_branch_displacement_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_branch_displacement_width_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_iform_enum_dispatch : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_immediate_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_immediate_width_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_length : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_machine_mode_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_memop_address_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval get_memory_displacement : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> Signed.Int64.t
Sourceval get_memory_displacement_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval get_memory_displacement_width_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval get_memory_operand_length : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval get_modrm : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> char
Sourceval get_nprefixes : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_scale : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval get_second_immediate : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> char
Sourceval get_signed_immediate : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int32.t
Sourceval get_stack_address_mode_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval get_unsigned_immediate : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t
Sourceval get_user_data : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t
Sourceval is_apx_zu : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval is_broadcast : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval is_broadcast_instruction : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval is_prefetch : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval masked_vector_operation : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval mem_read : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> bool
Sourceval mem_written : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> bool
Sourceval mem_written_only : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> bool
Sourceval noperands : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval number_of_memory_operands : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval operand_element_size_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval operand_elements : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval operand_length : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval operand_length_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
Sourceval set_branch_displacement : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
Sourceval set_branch_displacement_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
Sourceval set_immediate_signed : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int32.t -> int -> unit
Sourceval set_immediate_signed_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int32.t -> int -> unit
Sourceval set_immediate_unsigned : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t -> int -> unit
Sourceval set_immediate_unsigned_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t -> int -> unit
Sourceval set_input_chip : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Xedbindings_bind.XBEnums.chip -> unit
Sourceval set_memory_displacement : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
Sourceval set_memory_displacement_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
Sourceval set_scale : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> unit
Sourceval set_user_data : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t -> unit
Sourceval uses_embedded_broadcast : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval uses_rflags : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
Sourceval vector_length_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
Sourceval zero : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> unit
Sourceval zero_keep_mode : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> unit
Sourceval zero_keep_mode_from_operands : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> [> `Read ] Xedbindings_bind.Bind.Types.operand_values_ptr -> unit
Sourceval zero_set_mode : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> [> `Read ] Xedbindings_bind.Bind.Types.state_ptr -> unit
Sourceval get_attributes : [> `Read ] t -> Enum.attribute list
Sourceval dump_xed_format : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> Unsigned.UInt64.t -> string
Sourceval decode : [> `Read | `Write ] as 'a Bind.Types.decoded_inst_ptr -> ?features:[> `Read | `Write ] Bind.Types.chip_features_ptr -> string -> ('a Bind.Types.decoded_inst_ptr, Xedbindings_bind.XBEnums.error) result

As with the XED C library, running this more than once without using one of the `zero_` functions first will result in an error. Note that for basic usage, you can (and should) use Xed.decode to both `init` & `decode` at the same time.

Sourceval ild_decode : [> `Read | `Write ] as 'a Bind.Types.decoded_inst_ptr -> string -> ('a Bind.Types.decoded_inst_ptr, Xedbindings_bind.XBEnums.error) result
Sourceval get_byte : unit
Sourceval get_immediate_is_signed : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
Sourceval has_mpx_prefix : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
Sourceval is_xacquire : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
Sourceval is_xrelease : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
Sourceval get_operand_width : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> int
Sourceval format : ?address_with_names:bool -> ?xml_a:bool -> ?xml_f:bool -> ?omit_unit_scale:bool -> ?no_ext_signed_imm:bool -> ?curly_mask_omit_k0:bool -> ?lowercase_hex:bool -> ?positive_mem_disp:bool -> ?syntax:Enum.syntax -> ?symbolizer:??? -> [> `Read ] t -> int64 -> string
  • parameter symbolizer

    callback function to turn an address into a name & offset.

Sourceval to_string : [> `Read ] t -> string

It's undefined exactly what format you get from to_string. Currently, it assumes address 0 and formats in intel syntax.

OCaml

Innovation. Community. Security.