1 (***********************************************************************)
5 (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
7 (* Copyright 1996 Institut National de Recherche en Informatique et *)
8 (* en Automatique. All rights reserved. This file is distributed *)
9 (* under the terms of the Q Public License version 1.0. *)
11 (***********************************************************************)
15 (* Second intermediate language (machine independent) *)
17 type machtype_component
=
22 type machtype
= machtype_component array
24 val typ_void
: machtype
25 val typ_addr
: machtype
27 val typ_float
: machtype
29 val size_component
: machtype_component
-> int
30 val size_machtype
: machtype
-> int
40 val negate_comparison
: comparison
-> comparison
41 val swap_comparison
: comparison
-> comparison
52 | Double
(* 64-bit-aligned 64-bit float *)
53 | Double_u
(* word-aligned 64-bit float *)
56 Capply
of machtype
* Debuginfo.t
57 | Cextcall
of string * machtype
* bool * Debuginfo.t
58 | Cload
of memory_chunk
60 | Cstore
of memory_chunk
61 | Caddi
| Csubi
| Cmuli
| Cdivi
| Cmodi
62 | Cand
| Cor
| Cxor
| Clsl
| Clsr
| Casr
67 | Caddf
| Csubf
| Cmulf
| Cdivf
68 | Cfloatofint
| Cintoffloat
70 | Craise
of Debuginfo.t
71 | Ccheckbound
of Debuginfo.t
75 | Cconst_natint
of nativeint
76 | Cconst_float
of string
77 | Cconst_symbol
of string
78 | Cconst_pointer
of int
79 | Cconst_natpointer
of nativeint
81 | Clet
of Ident.t
* expression
* expression
82 | Cassign
of Ident.t
* expression
83 | Ctuple
of expression list
84 | Cop
of operation
* expression list
85 | Csequence
of expression
* expression
86 | Cifthenelse
of expression
* expression
* expression
87 | Cswitch
of expression
* int array
* expression array
89 | Ccatch
of int * Ident.t list
* expression
* expression
90 | Cexit
of int * expression list
91 | Ctrywith
of expression
* Ident.t
* expression
95 fun_args
: (Ident.t
* machtype
) list
;
100 Cdefine_symbol
of string
101 | Cdefine_label
of int
102 | Cglobal_symbol
of string
105 | Cint32
of nativeint
109 | Csymbol_address
of string
110 | Clabel_address
of int
117 | Cdata
of data_item list