Module Cmm
type machtype_component =
| Addr
| Int
| Float
type machtype = machtype_component array
val typ_void : machtype
val typ_addr : machtype
val typ_int : machtype
val typ_float : machtype
val size_component : machtype_component -> int
val size_machtype : machtype -> int
type comparison =
| Ceq
| Cne
| Clt
| Cle
| Cgt
| Cge
val negate_comparison : comparison -> comparison
val swap_comparison : comparison -> comparison
type memory_chunk =
| Byte_unsigned
| Byte_signed
| Sixteen_unsigned
| Sixteen_signed
| Thirtytwo_unsigned
| Thirtytwo_signed
| Word
| Single
| Double
| Double_u
type operation =
| Cload of memory_chunk
| Calloc
| Cstore of memory_chunk
| Caddi
| Csubi
| Cmuli
| Cmulhi
| Cdivi
| Cmodi
| Cand
| Cor
| Cxor
| Clsl
| Clsr
| Casr
| Ccmpi of comparison
| Cadda
| Csuba
| Ccmpa of comparison
| Cnegf
| Cabsf
| Caddf
| Csubf
| Cmulf
| Cdivf
| Cfloatofint
| Cintoffloat
| Ccmpf of comparison
type expression =
| Cconst_int of int
| Cconst_natint of nativeint
| Cconst_float of float
| Cconst_symbol of string
| Cconst_pointer of int
| Cconst_natpointer of nativeint
| Cconst_blockheader of nativeint
| Ctuple of expression list
| Cop of operation * expression list
| Csequence of expression * expression
| Cifthenelse of expression * expression * expression
| Cswitch of expression * int array * expression array
| Cloop of expression
| Cexit of int * expression list
type data_item =
| Cdefine_symbol of string
| Cdefine_label of int
| Cglobal_symbol of string
| Cint8 of int
| Cint16 of int
| Cint32 of nativeint
| Cint of nativeint
| Csingle of float
| Cdouble of float
| Csymbol_address of string
| Clabel_address of int
| Cstring of string
| Cskip of int
| Calign of int
type phrase =
| Cfunction of fundecl
| Cdata of data_item list