jon.recoil.org

Module Operation

type trap_stack =
  1. | Uncaught
    (*

    Exceptions escape the current function

    *)
  2. | Specific_trap of Cmm.trywith_shared_label * trap_stack
    (*

    Current handler is a delayed/shared Trywith

    *)
val equal_trap_stack : trap_stack -> trap_stack -> bool
type integer_comparison = Cmm.integer_comparison
val string_of_integer_comparison : integer_comparison -> string
val equal_integer_comparison : integer_comparison -> integer_comparison -> bool
val invert_integer_comparison : integer_comparison -> integer_comparison
type integer_operation =
  1. | Iadd
  2. | Isub
  3. | Imul
  4. | Imulh of {
    1. signed : bool;
    }
  5. | Idiv
  6. | Imod
  7. | Iand
  8. | Ior
  9. | Ixor
  10. | Ilsl
  11. | Ilsr
  12. | Iasr
  13. | Iclz
  14. | Ictz
  15. | Ipopcnt
  16. | Icomp of integer_comparison
type int128_operation =
  1. | Iadd128
  2. | Isub128
  3. | Imul64 of {
    1. signed : bool;
    }
val string_of_integer_operation : integer_operation -> string
val string_of_int128_operation : int128_operation -> string
val is_unary_integer_operation : integer_operation -> bool
val equal_integer_operation : integer_operation -> integer_operation -> bool
val equal_int128_operation : int128_operation -> int128_operation -> bool
type float_comparison = Cmm.float_comparison
val equal_float_comparison : float_comparison -> float_comparison -> bool
type float_width = Cmm.float_width
val equal_float_width : float_width -> float_width -> bool
type float_operation =
  1. | Inegf
  2. | Iabsf
  3. | Iaddf
  4. | Isubf
  5. | Imulf
  6. | Idivf
  7. | Icompf of float_comparison
val string_of_float_operation : float_operation -> string
val format_float_operation : Format.formatter -> float_operation -> unit
val equal_float_operation : float_operation -> float_operation -> bool
type mutable_flag =
  1. | Immutable
  2. | Mutable
val equal_mutable_flag : mutable_flag -> mutable_flag -> bool
val of_ast_mutable_flag : Asttypes.mutable_flag -> mutable_flag
val to_ast_mutable_flag : mutable_flag -> Asttypes.mutable_flag
type test =
  1. | Itruetest
  2. | Ifalsetest
  3. | Iinttest of integer_comparison
  4. | Iinttest_imm of integer_comparison * int
  5. | Ifloattest of float_width * float_comparison
  6. | Ioddtest
  7. | Ieventest
val format_test : print_reg:(Format.formatter -> Reg.t -> unit) -> test -> Format.formatter -> Reg.t array -> unit
val invert_test : test -> test
type t =
  1. | Move
  2. | Spill
  3. | Reload
  4. | Const_int of nativeint
  5. | Const_float32 of int32
  6. | Const_float of int64
  7. | Const_symbol of Cmm.symbol
  8. | Const_vec128 of Cmm.vec128_bits
  9. | Const_vec256 of Cmm.vec256_bits
  10. | Const_vec512 of Cmm.vec512_bits
  11. | Stackoffset of int
  12. | Load of {
    1. memory_chunk : Cmm.memory_chunk;
    2. addressing_mode : Arch.addressing_mode;
    3. mutability : mutable_flag;
    4. is_atomic : bool;
    }
  13. | Store of Cmm.memory_chunk * Arch.addressing_mode * bool
  14. | Intop of integer_operation
  15. | Int128op of int128_operation
  16. | Intop_imm of integer_operation * int
  17. | Intop_atomic of {
    1. op : Cmm.atomic_op;
    2. size : Cmm.atomic_bitwidth;
    3. addr : Arch.addressing_mode;
    }
  18. | Floatop of float_width * float_operation
  19. | Csel of test
  20. | Reinterpret_cast of Cmm.reinterpret_cast
  21. | Static_cast of Cmm.static_cast
  22. | Probe_is_enabled of {
    1. name : string;
    2. enabled_at_init : bool option;
    }
  23. | Opaque
  24. | Begin_region
  25. | End_region
  26. | Specific of Arch.specific_operation
  27. | Name_for_debugger of {
    1. ident : Ident.t;
    2. which_parameter : int option;
    3. provenance : Backend_var.Provenance.t option;
    4. regs : Reg.t array;
    }
  28. | Dls_get
  29. | Tls_get
  30. | Domain_index
  31. | Poll
  32. | Pause
  33. | Alloc of {
    1. bytes : int;
    2. dbginfo : Cmm.alloc_dbginfo;
    3. mode : Cmm.Alloc_mode.t;
    }
val is_pure : t -> bool
val dump : Format.formatter -> t -> unit
val equal : t -> t -> bool