jon.recoil.org

Module Operation

type trap_stack =
  1. | Uncaught
    (*

    Exceptions escape the current function

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

    Current handler is a delayed/shared Trywith

    *)
val equal_trap_stack : Operation.trap_stack -> Operation.trap_stack -> bool
type integer_comparison = Cmm.integer_comparison
val string_of_integer_comparison : Operation.integer_comparison -> string
val equal_integer_comparison : Operation.integer_comparison -> Operation.integer_comparison -> bool
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 of {
    1. arg_is_non_zero : bool;
    }
  14. | Ictz of {
    1. arg_is_non_zero : bool;
    }
  15. | Ipopcnt
  16. | Icomp of Operation.integer_comparison
type int128_operation =
  1. | Iadd128
  2. | Isub128
  3. | Imul64 of {
    1. signed : bool;
    }
val string_of_integer_operation : Operation.integer_operation -> string
val string_of_int128_operation : Operation.int128_operation -> string
val is_unary_integer_operation : Operation.integer_operation -> bool
val equal_integer_operation : Operation.integer_operation -> Operation.integer_operation -> bool
val equal_int128_operation : Operation.int128_operation -> Operation.int128_operation -> bool
type float_comparison = Cmm.float_comparison
val equal_float_comparison : Operation.float_comparison -> Operation.float_comparison -> bool
type float_width = Cmm.float_width
val equal_float_width : Operation.float_width -> Operation.float_width -> bool
type float_operation =
  1. | Inegf
  2. | Iabsf
  3. | Iaddf
  4. | Isubf
  5. | Imulf
  6. | Idivf
  7. | Icompf of Operation.float_comparison
val string_of_float_operation : Operation.float_operation -> string
val format_float_operation : Stdlib.Format.formatter -> Operation.float_operation -> unit
val equal_float_operation : Operation.float_operation -> Operation.float_operation -> bool
type mutable_flag =
  1. | Immutable
  2. | Mutable
val equal_mutable_flag : Operation.mutable_flag -> Operation.mutable_flag -> bool
val of_ast_mutable_flag : Asttypes.mutable_flag -> Operation.mutable_flag
val to_ast_mutable_flag : Operation.mutable_flag -> Asttypes.mutable_flag
type test =
  1. | Itruetest
  2. | Ifalsetest
  3. | Iinttest of Operation.integer_comparison
  4. | Iinttest_imm of Operation.integer_comparison * int
  5. | Ifloattest of Operation.float_width * Operation.float_comparison
  6. | Ioddtest
  7. | Ieventest
val format_test : print_reg:(Stdlib.Format.formatter -> Reg.t -> unit) -> Operation.test -> Stdlib.Format.formatter -> Reg.t array -> unit
val invert_test : Operation.test -> Operation.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 : Operation.mutable_flag;
    4. is_atomic : bool;
    }
  13. | Store of Cmm.memory_chunk * Arch.addressing_mode * bool
  14. | Intop of Operation.integer_operation
  15. | Int128op of Operation.int128_operation
  16. | Intop_imm of Operation.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 Operation.float_width * Operation.float_operation
  19. | Csel of Operation.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. | Poll
  31. | Pause
  32. | Alloc of {
    1. bytes : int;
    2. dbginfo : Cmm.alloc_dbginfo;
    3. mode : Cmm.Alloc_mode.t;
    }
val is_pure : Operation.t -> bool
val dump : Stdlib.Format.formatter -> Operation.t -> unit