Clambda_primitives
type mutable_flag = Asttypes.mutable_flag
type immediate_or_pointer = Lambda.immediate_or_pointer
type initialization_or_assignment = Lambda.initialization_or_assignment
type is_safe = Lambda.is_safe
type primitive =
| Pread_symbol of string
| Pmakeblock of int * mutable_flag * block_shape
| Pfield of int * immediate_or_pointer * mutable_flag
| Pfield_computed
| Psetfield of int * immediate_or_pointer * initialization_or_assignment
| Psetfield_computed of immediate_or_pointer * initialization_or_assignment
| Pfloatfield of int
| Psetfloatfield of int * initialization_or_assignment
| Pduprecord of Types.record_representation * int
| Prunstack
| Pperform
| Presume
| Preperform
| Pccall of Primitive.description
| Praise of raise_kind
| Psequand
| Psequor
| Pnot
| Pnegint
| Paddint
| Psubint
| Pmulint
| Pdivint of is_safe
| Pmodint of is_safe
| Pandint
| Porint
| Pxorint
| Plslint
| Plsrint
| Pasrint
| Pintcomp of integer_comparison
| Pcompare_ints
| Pcompare_floats
| Pcompare_bints of boxed_integer
| Poffsetint of int
| Poffsetref of int
| Pintoffloat
| Pfloatofint
| Pnegfloat
| Pabsfloat
| Paddfloat
| Psubfloat
| Pmulfloat
| Pdivfloat
| Pfloatcomp of float_comparison
| Pstringlength
| Pstringrefu
| Pstringrefs
| Pbyteslength
| Pbytesrefu
| Pbytessetu
| Pbytesrefs
| Pbytessets
| Pmakearray of array_kind * mutable_flag
For Pmakearray
, the list of arguments must not be empty. The empty array should be represented by a distinguished constant in the middle end.
| Pduparray of array_kind * mutable_flag
For Pduparray
, the argument must be an immutable array. The arguments of Pduparray
give the kind and mutability of the array being *produced* by the duplication.
| Parraylength of array_kind
| Parrayrefu of array_kind
| Parraysetu of array_kind
| Parrayrefs of array_kind
| Parraysets of array_kind
| Pisint
| Pisout
| Pbintofint of boxed_integer
| Pintofbint of boxed_integer
| Pcvtbint of boxed_integer * boxed_integer
| Pnegbint of boxed_integer
| Paddbint of boxed_integer
| Psubbint of boxed_integer
| Pmulbint of boxed_integer
| Pdivbint of {
size : boxed_integer;
is_safe : is_safe;
}
| Pmodbint of {
size : boxed_integer;
is_safe : is_safe;
}
| Pandbint of boxed_integer
| Porbint of boxed_integer
| Pxorbint of boxed_integer
| Plslbint of boxed_integer
| Plsrbint of boxed_integer
| Pasrbint of boxed_integer
| Pbintcomp of boxed_integer * integer_comparison
| Pbigarrayref of bool * int * bigarray_kind * bigarray_layout
| Pbigarrayset of bool * int * bigarray_kind * bigarray_layout
| Pbigarraydim of int
| Pstring_load of memory_access_size * is_safe
| Pbytes_load of memory_access_size * is_safe
| Pbytes_set of memory_access_size * is_safe
| Pbigstring_load of memory_access_size * is_safe
| Pbigstring_set of memory_access_size * is_safe
| Pbswap16
| Pbbswap of boxed_integer
| Pint_as_pointer
| Patomic_load of {
immediate_or_pointer : immediate_or_pointer;
}
| Patomic_exchange
| Patomic_cas
| Patomic_fetch_add
| Popaque
| Pdls_get
and float_comparison = Lambda.float_comparison =
and block_shape = Lambda.block_shape
and bigarray_kind = Lambda.bigarray_kind =
and bigarray_layout = Lambda.bigarray_layout =