jon.recoil.org

Module Operation.Unary

module Int_op : sig ... end
module Float_op : sig ... end
type 'mode t =
  1. | Integral of 'mode Ocaml_typing.Scalar.Integral.t * Ocaml_typing.Scalar.Operation.Unary.Int_op.t
  2. | Floating of 'mode Ocaml_typing.Scalar.Floating.t * Ocaml_typing.Scalar.Operation.Unary.Float_op.t
  3. | Static_cast of {
    1. src : Ocaml_typing.Scalar.any_locality_mode Ocaml_typing.Scalar.scalar;
    2. dst : 'mode Ocaml_typing.Scalar.scalar;
    }
    (*

    Static_cast performs a conversion between numeric types, which may include (un)tagging or (un)boxing. The jane/doc/scalars.md file contains detailed documentation of the semantics. The middle end expands the static cast operations into finer-grained primitives (for example %int64_as_int, which is represented as a static case, will turn into an unboxing followed by an int64 -> int conversion, the latter of which takes the integer modulo 2^63 (2^31 on 32-bit targets).

    *)