package xedbindings

  1. Overview
  2. Docs
include module type of struct include Bind.DecodedInst end
val avx512_dest_elements : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val classify_amx : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val classify_apx : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val classify_avx : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val classify_avx512 : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val classify_avx512_maskop : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val classify_sse : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val conditionally_writes_registers : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val get_branch_displacement : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t
val get_branch_displacement_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_branch_displacement_width_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_iform_enum_dispatch : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_immediate_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_immediate_width_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_length : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_machine_mode_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_memop_address_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val get_memory_displacement : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> Signed.Int64.t
val get_memory_displacement_width : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val get_memory_displacement_width_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val get_memory_operand_length : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val get_modrm : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> char
val get_nprefixes : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_scale : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val get_second_immediate : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> char
val get_signed_immediate : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int32.t
val get_stack_address_mode_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val get_unsigned_immediate : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t
val get_user_data : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t
val is_apx_zu : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val is_broadcast : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val is_broadcast_instruction : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val is_prefetch : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val masked_vector_operation : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val masking : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val mem_read : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> bool
val mem_written : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> bool
val mem_written_only : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> bool
val merging : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val noperands : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val number_of_memory_operands : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val operand_element_size_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val operand_elements : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val operand_length : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val operand_length_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> int
val set_branch_displacement : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
val set_branch_displacement_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
val set_immediate_signed : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int32.t -> int -> unit
val set_immediate_signed_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int32.t -> int -> unit
val set_immediate_unsigned : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t -> int -> unit
val set_immediate_unsigned_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t -> int -> unit
val set_input_chip : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Xedbindings_bind.XBEnums.chip -> unit
val set_memory_displacement : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
val set_memory_displacement_bits : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Signed.Int64.t -> int -> unit
val set_scale : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int -> unit
val set_user_data : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> Unsigned.UInt64.t -> unit
val uses_embedded_broadcast : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val uses_rflags : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val valid : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val vector_length_bits : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> int
val zero : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> unit
val zero_keep_mode : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> unit
val zero_keep_mode_from_operands : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> [> `Read ] Xedbindings_bind.Bind.Types.operand_values_ptr -> unit
val zero_set_mode : [> `Read | `Write ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> [> `Read ] Xedbindings_bind.Bind.Types.state_ptr -> unit
val zeroing : [> `Read ] Xedbindings_bind.Bind.Types.decoded_inst_ptr -> bool
val get_attributes : [> `Read ] t -> Enum.attribute list
val dump_xed_format : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> Unsigned.UInt64.t -> string
val 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.

val ild_decode : [> `Read | `Write ] as 'a Bind.Types.decoded_inst_ptr -> string -> ('a Bind.Types.decoded_inst_ptr, Xedbindings_bind.XBEnums.error) result
val get_byte : unit
val get_immediate_is_signed : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
val has_mpx_prefix : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
val is_xacquire : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
val is_xrelease : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> bool
val get_operand_width : [> `Read ] Xedbindings_bind.Types_generated.decoded_inst_ptr -> int
val 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:(int64 -> (string * int64) option) -> [> `Read ] t -> int64 -> string
  • parameter symbolizer

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

val 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.