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 565 - (view) (download)

1 : monnier 411 (*
2 : george 545 * This file was automatically generated by MDGen (v2.0)
3 : monnier 411 * 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 : george 545 structure LabelExp: LABELEXP
12 : monnier 411 structure Region : REGION
13 : george 545 sharing Constant = LabelExp.Constant
14 : monnier 411 datatype operand =
15 :     Immed of Int32.int
16 : monnier 247 | ImmedLabel of LabelExp.labexp
17 : monnier 411 | Relative of int
18 :     | LabelEA of LabelExp.labexp
19 :     | Direct of int
20 :     | FDirect of int
21 : george 555 | ST of int
22 : monnier 498 | MemReg of int
23 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
24 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
25 :     }
26 : george 545 type addressing_mode = operand
27 : monnier 411 type ea = operand
28 :     datatype cond =
29 :     EQ
30 :     | NE
31 :     | LT
32 :     | LE
33 :     | GT
34 :     | GE
35 :     | B
36 :     | BE
37 :     | A
38 :     | AE
39 :     | C
40 :     | NC
41 :     | P
42 :     | NP
43 :     | O
44 :     | NO
45 : george 545 datatype binaryOp =
46 :     ADDL
47 :     | SUBL
48 :     | ANDL
49 :     | ORL
50 :     | XORL
51 :     | SHLL
52 :     | SARL
53 :     | SHRL
54 :     | ADCL
55 :     | SBBL
56 :     | ADDW
57 :     | SUBW
58 :     | ANDW
59 :     | ORW
60 :     | XORW
61 :     | SHLW
62 :     | SARW
63 :     | SHRW
64 :     | ADDB
65 :     | SUBB
66 :     | ANDB
67 :     | ORB
68 :     | XORB
69 :     | SHLB
70 :     | SARB
71 :     | SHRB
72 :     datatype multDivOp =
73 :     UMUL
74 :     | IDIV
75 :     | UDIV
76 :     datatype unaryOp =
77 :     DECL
78 :     | INCL
79 :     | NEGL
80 :     | NOTL
81 :     | NOTW
82 :     | NOTB
83 :     datatype move =
84 :     MOVL
85 :     | MOVB
86 :     | MOVW
87 :     | MOVSWL
88 :     | MOVZWL
89 :     | MOVSBL
90 :     | MOVZBL
91 : monnier 411 datatype fbinOp =
92 :     FADDP
93 : george 555 | FADDS
94 : monnier 411 | FMULP
95 : george 555 | FMULS
96 : leunga 565 | FCOMS
97 :     | FCOMPS
98 : monnier 411 | FSUBP
99 : george 555 | FSUBS
100 : monnier 411 | FSUBRP
101 : george 555 | FSUBRS
102 : monnier 411 | FDIVP
103 : george 555 | FDIVS
104 : monnier 411 | FDIVRP
105 : george 555 | FDIVRS
106 : leunga 565 | FADDL
107 :     | FMULL
108 :     | FCOML
109 :     | FCOMPL
110 :     | FSUBL
111 :     | FSUBRL
112 :     | FDIVL
113 :     | FDIVRL
114 :     datatype fibinOp =
115 :     FIADDS
116 :     | FIMULS
117 :     | FICOMS
118 :     | FICOMPS
119 :     | FISUBS
120 :     | FISUBRS
121 :     | FIDIVS
122 : george 555 | FIDIVRS
123 :     | FIADDL
124 :     | FIMULL
125 : leunga 565 | FICOML
126 :     | FICOMPL
127 : george 555 | FISUBL
128 :     | FISUBRL
129 :     | FIDIVL
130 :     | FIDIVRL
131 : monnier 411 datatype funOp =
132 :     FABS
133 :     | FCHS
134 : george 545 | FSIN
135 :     | FCOS
136 :     | FTAN
137 :     | FSCALE
138 :     | FRNDINT
139 :     | FSQRT
140 :     | FTST
141 :     | FXAM
142 :     | FINCSTP
143 :     | FDECSTP
144 :     datatype fenvOp =
145 :     FLDENV
146 :     | FNLDENV
147 :     | FSTENV
148 :     | FNSTENV
149 : monnier 411 datatype instruction =
150 :     NOP
151 :     | JMP of (operand * Label.label list)
152 :     | JCC of {cond:cond, opnd:operand}
153 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
154 : george 545 | LEAVE
155 : monnier 429 | RET of operand option
156 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
157 :     | LEA of {r32:int, addr:operand}
158 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
159 :     | CMPW of {lsrc:operand, rsrc:operand}
160 :     | CMPB of {lsrc:operand, rsrc:operand}
161 :     | TESTL of {lsrc:operand, rsrc:operand}
162 :     | TESTW of {lsrc:operand, rsrc:operand}
163 :     | TESTB of {lsrc:operand, rsrc:operand}
164 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
165 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
166 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
167 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
168 : george 545 | SET of {cond:cond, opnd:operand}
169 :     | CMOV of {cond:cond, src:operand, dst:int}
170 :     | PUSHL of operand
171 :     | PUSHW of operand
172 :     | PUSHB of operand
173 : monnier 411 | POP of operand
174 :     | CDQ
175 :     | INTO
176 :     | COPY of {dst:int list, src:int list, tmp:operand option}
177 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
178 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
179 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
180 : monnier 411 | FUNARY of funOp
181 :     | FUCOMPP
182 : george 545 | FCOMPP
183 :     | FXCH of {opnd:int}
184 :     | FSTPL of operand
185 :     | FSTPS of operand
186 : george 555 | FSTPT of operand
187 : leunga 565 | FLD1
188 :     | FLDL2E
189 :     | FLDL2T
190 :     | FLDLG2
191 :     | FLDLN2
192 :     | FLDPI
193 :     | FLDZ
194 : george 545 | FLDL of operand
195 :     | FLDS of operand
196 : george 555 | FLDT of operand
197 : monnier 411 | FILD of operand
198 : leunga 565 | FILDL of operand
199 :     | FILDLL of operand
200 : monnier 411 | FNSTSW
201 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
202 : monnier 411 | SAHF
203 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
204 :     end
205 : monnier 247
206 : george 545 functor X86Instr(structure LabelExp : LABELEXP
207 :     structure Region : REGION
208 : monnier 411 ) : X86INSTR =
209 :     struct
210 :     structure C = X86Cells
211 :     structure Region = Region
212 : george 545 structure LabelExp = LabelExp
213 :     structure Constant = LabelExp.Constant
214 : monnier 411 datatype operand =
215 :     Immed of Int32.int
216 :     | ImmedLabel of LabelExp.labexp
217 :     | Relative of int
218 :     | LabelEA of LabelExp.labexp
219 :     | Direct of int
220 :     | FDirect of int
221 : george 555 | ST of int
222 : monnier 498 | MemReg of int
223 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
224 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
225 :     }
226 : george 545 type addressing_mode = operand
227 : monnier 411 type ea = operand
228 :     datatype cond =
229 :     EQ
230 :     | NE
231 :     | LT
232 :     | LE
233 :     | GT
234 :     | GE
235 :     | B
236 :     | BE
237 :     | A
238 :     | AE
239 :     | C
240 :     | NC
241 :     | P
242 :     | NP
243 :     | O
244 :     | NO
245 : george 545 datatype binaryOp =
246 :     ADDL
247 :     | SUBL
248 :     | ANDL
249 :     | ORL
250 :     | XORL
251 :     | SHLL
252 :     | SARL
253 :     | SHRL
254 :     | ADCL
255 :     | SBBL
256 :     | ADDW
257 :     | SUBW
258 :     | ANDW
259 :     | ORW
260 :     | XORW
261 :     | SHLW
262 :     | SARW
263 :     | SHRW
264 :     | ADDB
265 :     | SUBB
266 :     | ANDB
267 :     | ORB
268 :     | XORB
269 :     | SHLB
270 :     | SARB
271 :     | SHRB
272 :     datatype multDivOp =
273 :     UMUL
274 :     | IDIV
275 :     | UDIV
276 :     datatype unaryOp =
277 :     DECL
278 :     | INCL
279 :     | NEGL
280 :     | NOTL
281 :     | NOTW
282 :     | NOTB
283 :     datatype move =
284 :     MOVL
285 :     | MOVB
286 :     | MOVW
287 :     | MOVSWL
288 :     | MOVZWL
289 :     | MOVSBL
290 :     | MOVZBL
291 : monnier 411 datatype fbinOp =
292 :     FADDP
293 : george 555 | FADDS
294 : monnier 411 | FMULP
295 : george 555 | FMULS
296 : leunga 565 | FCOMS
297 :     | FCOMPS
298 : monnier 411 | FSUBP
299 : george 555 | FSUBS
300 : monnier 411 | FSUBRP
301 : george 555 | FSUBRS
302 : monnier 411 | FDIVP
303 : george 555 | FDIVS
304 : monnier 411 | FDIVRP
305 : george 555 | FDIVRS
306 : leunga 565 | FADDL
307 :     | FMULL
308 :     | FCOML
309 :     | FCOMPL
310 :     | FSUBL
311 :     | FSUBRL
312 :     | FDIVL
313 :     | FDIVRL
314 :     datatype fibinOp =
315 :     FIADDS
316 :     | FIMULS
317 :     | FICOMS
318 :     | FICOMPS
319 :     | FISUBS
320 :     | FISUBRS
321 :     | FIDIVS
322 : george 555 | FIDIVRS
323 :     | FIADDL
324 :     | FIMULL
325 : leunga 565 | FICOML
326 :     | FICOMPL
327 : george 555 | FISUBL
328 :     | FISUBRL
329 :     | FIDIVL
330 :     | FIDIVRL
331 : monnier 411 datatype funOp =
332 :     FABS
333 :     | FCHS
334 : george 545 | FSIN
335 :     | FCOS
336 :     | FTAN
337 :     | FSCALE
338 :     | FRNDINT
339 :     | FSQRT
340 :     | FTST
341 :     | FXAM
342 :     | FINCSTP
343 :     | FDECSTP
344 :     datatype fenvOp =
345 :     FLDENV
346 :     | FNLDENV
347 :     | FSTENV
348 :     | FNSTENV
349 : monnier 411 datatype instruction =
350 :     NOP
351 :     | JMP of (operand * Label.label list)
352 :     | JCC of {cond:cond, opnd:operand}
353 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
354 : george 545 | LEAVE
355 : monnier 429 | RET of operand option
356 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
357 :     | LEA of {r32:int, addr:operand}
358 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
359 :     | CMPW of {lsrc:operand, rsrc:operand}
360 :     | CMPB of {lsrc:operand, rsrc:operand}
361 :     | TESTL of {lsrc:operand, rsrc:operand}
362 :     | TESTW of {lsrc:operand, rsrc:operand}
363 :     | TESTB of {lsrc:operand, rsrc:operand}
364 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
365 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
366 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
367 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
368 : george 545 | SET of {cond:cond, opnd:operand}
369 :     | CMOV of {cond:cond, src:operand, dst:int}
370 :     | PUSHL of operand
371 :     | PUSHW of operand
372 :     | PUSHB of operand
373 : monnier 411 | POP of operand
374 :     | CDQ
375 :     | INTO
376 :     | COPY of {dst:int list, src:int list, tmp:operand option}
377 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
378 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
379 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
380 : monnier 411 | FUNARY of funOp
381 :     | FUCOMPP
382 : george 545 | FCOMPP
383 :     | FXCH of {opnd:int}
384 :     | FSTPL of operand
385 :     | FSTPS of operand
386 : george 555 | FSTPT of operand
387 : leunga 565 | FLD1
388 :     | FLDL2E
389 :     | FLDL2T
390 :     | FLDLG2
391 :     | FLDLN2
392 :     | FLDPI
393 :     | FLDZ
394 : george 545 | FLDL of operand
395 :     | FLDS of operand
396 : george 555 | FLDT of operand
397 : monnier 411 | FILD of operand
398 : leunga 565 | FILDL of operand
399 :     | FILDLL of operand
400 : monnier 411 | FNSTSW
401 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
402 : monnier 411 | SAHF
403 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
404 : monnier 247 end
405 :    

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