Module Mach
type integer_operation =
| Iadd
| Isub
| Imul
| Imulh
| Idiv
| Imod
| Iand
| Ior
| Ixor
| Ilsl
| Ilsr
| Iasr
| Icomp of integer_comparison
| Icheckbound
type test =
| Itruetest
| Ifalsetest
| Iinttest of integer_comparison
| Iinttest_imm of integer_comparison * int
| Ioddtest
| Ieventest
type operation =
| Imove
| Ispill
| Ireload
| Iconst_int of nativeint
| Iconst_float of float
| Iconst_symbol of string
| Iconst_blockheader of nativeint
| Icall_ind
| Icall_imm of string
| Itailcall_ind
| Itailcall_imm of string
| Iextcall of string * bool
| Istackoffset of int
| Ialloc of int
| Iintop of integer_operation
| Iintop_imm of integer_operation * int
| Inegf
| Iabsf
| Iaddf
| Isubf
| Imulf
| Idivf
| Ifloatofint
| Iintoffloat
type instruction_desc =
| Iend
| Iop of operation
| Ireturn
| Iifthenelse of test * instruction * instruction
| Iswitch of int array * instruction array
| Iloop of instruction
| Icatch of int * instruction * instruction
| Iexit of int
| Itrywith of instruction * instruction
val dummy_instr : instruction
val end_instr : unit -> instruction
val instr_iter : instruction -> unit -> instruction -> unit