jon.recoil.org

Module Arch

module Extension : sig ... end
val trap_notes : bool Stdlib.ref
val arch_check_symbols : bool Stdlib.ref
val is_asan_enabled : bool Stdlib.ref
val command_line_options : (string * Stdlib.Arg.spec * string) list
type sym_global =
  1. | Global
  2. | Local
type addressing_mode =
  1. | Ibased of string * Arch.sym_global * int
  2. | Iindexed of int
  3. | Iindexed2 of int
  4. | Iscaled of int * int
  5. | Iindexed2scaled of int * int
val equal_addressing_mode : Arch.addressing_mode -> Arch.addressing_mode -> bool
type prefetch_temporal_locality_hint =
  1. | Nonlocal
  2. | Low
  3. | Moderate
  4. | High
type prefetch_info = {
  1. is_write : bool;
  2. locality : Arch.prefetch_temporal_locality_hint;
  3. addr : Arch.addressing_mode;
}
type bswap_bitwidth =
  1. | Sixteen
  2. | Thirtytwo
  3. | Sixtyfour
type float_width = Cmm.float_width
type specific_operation =
  1. | Ilea of Arch.addressing_mode
  2. | Istore_int of nativeint * Arch.addressing_mode * bool
  3. | Ioffset_loc of int * Arch.addressing_mode
  4. | Ifloatarithmem of Arch.float_width * Arch.float_operation * Arch.addressing_mode
  5. | Ibswap of {
    1. bitwidth : Arch.bswap_bitwidth;
    }
  6. | Isextend32
  7. | Izextend32
  8. | Irdtsc
  9. | Irdpmc
  10. | Ilfence
  11. | Isfence
  12. | Imfence
  13. | Ipackf32
  14. | Isimd of Simd.operation
  15. | Isimd_mem of Simd.Mem.operation * Arch.addressing_mode
  16. | Icldemote of Arch.addressing_mode
  17. | Iprefetch of {
    1. is_write : bool;
    2. locality : Arch.prefetch_temporal_locality_hint;
    3. addr : Arch.addressing_mode;
    }
  18. | Illvm_intrinsic of string
and float_operation =
  1. | Ifloatadd
  2. | Ifloatsub
  3. | Ifloatmul
  4. | Ifloatdiv
val equal_specific_operation : Arch.specific_operation -> Arch.specific_operation -> bool
val big_endian : bool
val size_addr : int
val size_int : int
val size_float : int
val size_vec128 : int
val size_vec256 : int
val size_vec512 : int
val allow_unaligned_access : bool
val division_crashes_on_overflow : bool
val identity_addressing : Arch.addressing_mode
val offset_addressing : Arch.addressing_mode -> int -> Arch.addressing_mode
val num_args_addressing : Arch.addressing_mode -> int
val addressing_displacement_for_llvmize : Arch.addressing_mode -> int
val print_addressing : (Stdlib.Format.formatter -> 'a -> unit) -> Arch.addressing_mode -> Stdlib.Format.formatter -> 'a array -> unit
val specific_operation_name : Arch.specific_operation -> string
val print_specific_operation : (Stdlib.Format.formatter -> 'a -> unit) -> Arch.specific_operation -> Stdlib.Format.formatter -> 'a array -> unit
val win64 : bool
val operation_is_pure : Arch.specific_operation -> bool
val operation_allocates : Arch.specific_operation -> bool
val float_cond_and_need_swap : Scalar.Float_comparison.t -> X86_ast.float_condition * bool
val isomorphic_specific_operation : Arch.specific_operation -> Arch.specific_operation -> bool
val equal_addressing_mode_without_displ : Arch.addressing_mode -> Arch.addressing_mode -> bool
val addressing_offset_in_bytes : Arch.addressing_mode -> Arch.addressing_mode -> arg_offset_in_bytes:('a -> 'a -> int option) -> 'a array -> 'a array -> int option