Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/MLRISC/x86/instructions/x86Instr.sml
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/x86/instructions/x86Instr.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 498 - (view) (download)
Original Path: sml/branches/SMLNJ/src/MLRISC/x86/instructions/x86Instr.sml

1 : monnier 411 (*
2 :     * This file was automatically generated by MDGen
3 :     * from the machine description file "x86/x86.md".
4 : monnier 247 *)
5 :    
6 :    
7 : monnier 411 signature X86INSTR =
8 :     sig
9 :     structure C : X86CELLS
10 :     structure Constant: CONSTANT
11 :     structure Region : REGION
12 :     datatype operand =
13 :     Immed of Int32.int
14 :     | Const of Constant.const
15 : monnier 247 | ImmedLabel of LabelExp.labexp
16 : monnier 411 | Relative of int
17 :     | LabelEA of LabelExp.labexp
18 :     | Direct of int
19 :     | FDirect of int
20 : monnier 498 | MemReg of int
21 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
22 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
23 :     }
24 :     type ea = operand
25 :     datatype binaryOp =
26 :     ADD
27 :     | SUB
28 :     | AND
29 :     | OR
30 :     | XOR
31 :     | SHL
32 :     | SAR
33 :     | SHR
34 :     datatype multDivOp =
35 :     UMUL
36 :     | IDIV
37 :     | UDIV
38 :     datatype unaryOp =
39 :     DEC
40 :     | INC
41 :     | NEG
42 :     | NOT
43 :     datatype move =
44 :     MOVL
45 :     | MOVZX
46 :     | MOVB
47 :     datatype cond =
48 :     EQ
49 :     | NE
50 :     | LT
51 :     | LE
52 :     | GT
53 :     | GE
54 :     | B
55 :     | BE
56 :     | A
57 :     | AE
58 :     | C
59 :     | NC
60 :     | P
61 :     | NP
62 :     | O
63 :     | NO
64 :     datatype fbinOp =
65 :     FADDP
66 :     | FADD
67 :     | FMULP
68 :     | FMUL
69 :     | FSUBP
70 :     | FSUB
71 :     | FSUBRP
72 :     | FSUBR
73 :     | FDIVP
74 :     | FDIV
75 :     | FDIVRP
76 :     | FDIVR
77 :     datatype funOp =
78 :     FABS
79 :     | FCHS
80 :     datatype instruction =
81 :     NOP
82 :     | JMP of (operand * Label.label list)
83 :     | JCC of {cond:cond, opnd:operand}
84 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
85 : monnier 429 | RET of operand option
86 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
87 :     | LEA of {r32:int, addr:operand}
88 :     | CMP of {lsrc:operand, rsrc:operand}
89 :     | BINARY of {binOp:binaryOp, src:operand, dst:operand}
90 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
91 :     | MUL3 of {dst:int, src1:operand, src2:Int32.int option}
92 :     | UNARY of {unOp:unaryOp, opnd:operand}
93 :     | PUSH of operand
94 :     | POP of operand
95 :     | CDQ
96 :     | INTO
97 :     | COPY of {dst:int list, src:int list, tmp:operand option}
98 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
99 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
100 :     | FUNARY of funOp
101 :     | FUCOMPP
102 :     | FXCH
103 :     | FSTP of operand
104 :     | FLD of operand
105 :     | FILD of operand
106 :     | FNSTSW
107 :     | SAHF
108 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
109 :     | GROUP of Annotations.annotation
110 :     end
111 : monnier 247
112 : monnier 411 functor X86Instr(structure Const : CONSTANT
113 :     structure Region : REGION
114 :     ) : X86INSTR =
115 :     struct
116 :     structure C = X86Cells
117 :     structure Region = Region
118 :     structure Constant = Const
119 :     datatype operand =
120 :     Immed of Int32.int
121 :     | Const of Constant.const
122 :     | ImmedLabel of LabelExp.labexp
123 :     | Relative of int
124 :     | LabelEA of LabelExp.labexp
125 :     | Direct of int
126 :     | FDirect of int
127 : monnier 498 | MemReg of int
128 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
129 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
130 :     }
131 :     type ea = operand
132 :     datatype binaryOp =
133 :     ADD
134 :     | SUB
135 :     | AND
136 :     | OR
137 :     | XOR
138 :     | SHL
139 :     | SAR
140 :     | SHR
141 :     datatype multDivOp =
142 :     UMUL
143 :     | IDIV
144 :     | UDIV
145 :     datatype unaryOp =
146 :     DEC
147 :     | INC
148 :     | NEG
149 :     | NOT
150 :     datatype move =
151 :     MOVL
152 :     | MOVZX
153 :     | MOVB
154 :     datatype cond =
155 :     EQ
156 :     | NE
157 :     | LT
158 :     | LE
159 :     | GT
160 :     | GE
161 :     | B
162 :     | BE
163 :     | A
164 :     | AE
165 :     | C
166 :     | NC
167 :     | P
168 :     | NP
169 :     | O
170 :     | NO
171 :     datatype fbinOp =
172 :     FADDP
173 :     | FADD
174 :     | FMULP
175 :     | FMUL
176 :     | FSUBP
177 :     | FSUB
178 :     | FSUBRP
179 :     | FSUBR
180 :     | FDIVP
181 :     | FDIV
182 :     | FDIVRP
183 :     | FDIVR
184 :     datatype funOp =
185 :     FABS
186 :     | FCHS
187 :     datatype instruction =
188 :     NOP
189 :     | JMP of (operand * Label.label list)
190 :     | JCC of {cond:cond, opnd:operand}
191 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
192 : monnier 429 | RET of operand option
193 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
194 :     | LEA of {r32:int, addr:operand}
195 :     | CMP of {lsrc:operand, rsrc:operand}
196 :     | BINARY of {binOp:binaryOp, src:operand, dst:operand}
197 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
198 :     | MUL3 of {dst:int, src1:operand, src2:Int32.int option}
199 :     | UNARY of {unOp:unaryOp, opnd:operand}
200 :     | PUSH of operand
201 :     | POP of operand
202 :     | CDQ
203 :     | INTO
204 :     | COPY of {dst:int list, src:int list, tmp:operand option}
205 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
206 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
207 :     | FUNARY of funOp
208 :     | FUCOMPP
209 :     | FXCH
210 :     | FSTP of operand
211 :     | FLD of operand
212 :     | FILD of operand
213 :     | FNSTSW
214 :     | SAHF
215 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
216 :     | GROUP of Annotations.annotation
217 : monnier 247 end
218 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0