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 657 - (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 : leunga 646 | BTSW
73 :     | BTCW
74 :     | BTRW
75 :     | BTSL
76 :     | BTCL
77 :     | BTRL
78 :     | ROLW
79 :     | RORW
80 :     | ROLL
81 :     | RORL
82 :     | XCHGB
83 :     | XCHGW
84 :     | XCHGL
85 :     | LOCK_ADCW
86 :     | LOCK_ADCL
87 :     | LOCK_ADDW
88 :     | LOCK_ADDL
89 :     | LOCK_ANDW
90 :     | LOCK_ANDL
91 :     | LOCK_BTSW
92 :     | LOCK_BTSL
93 :     | LOCK_BTRW
94 :     | LOCK_BTRL
95 :     | LOCK_BTCW
96 :     | LOCK_BTCL
97 :     | LOCK_ORW
98 :     | LOCK_ORL
99 :     | LOCK_SBBW
100 :     | LOCK_SBBL
101 :     | LOCK_SUBW
102 :     | LOCK_SUBL
103 :     | LOCK_XORW
104 :     | LOCK_XORL
105 : leunga 657 | LOCK_XADDB
106 :     | LOCK_XADDW
107 :     | LOCK_XADDL
108 :     | LOCK_CMPXCHGB
109 :     | LOCK_CMPXCHGW
110 :     | LOCK_CMPXCHGL
111 : george 545 datatype multDivOp =
112 : leunga 606 MULL
113 :     | IDIVL
114 :     | DIVL
115 : george 545 datatype unaryOp =
116 :     DECL
117 :     | INCL
118 :     | NEGL
119 :     | NOTL
120 :     | NOTW
121 :     | NOTB
122 : leunga 646 | LOCK_DECL
123 :     | LOCK_INCL
124 :     | LOCK_NEGL
125 :     | LOCK_NOTL
126 :     datatype bitOp =
127 :     BTW
128 :     | BTL
129 :     | LOCK_BTW
130 :     | LOCK_BTL
131 : george 545 datatype move =
132 :     MOVL
133 :     | MOVB
134 :     | MOVW
135 :     | MOVSWL
136 :     | MOVZWL
137 :     | MOVSBL
138 :     | MOVZBL
139 : monnier 411 datatype fbinOp =
140 :     FADDP
141 : george 555 | FADDS
142 : monnier 411 | FMULP
143 : george 555 | FMULS
144 : leunga 565 | FCOMS
145 :     | FCOMPS
146 : monnier 411 | FSUBP
147 : george 555 | FSUBS
148 : monnier 411 | FSUBRP
149 : george 555 | FSUBRS
150 : monnier 411 | FDIVP
151 : george 555 | FDIVS
152 : monnier 411 | FDIVRP
153 : george 555 | FDIVRS
154 : leunga 565 | FADDL
155 :     | FMULL
156 :     | FCOML
157 :     | FCOMPL
158 :     | FSUBL
159 :     | FSUBRL
160 :     | FDIVL
161 :     | FDIVRL
162 :     datatype fibinOp =
163 :     FIADDS
164 :     | FIMULS
165 :     | FICOMS
166 :     | FICOMPS
167 :     | FISUBS
168 :     | FISUBRS
169 :     | FIDIVS
170 : george 555 | FIDIVRS
171 :     | FIADDL
172 :     | FIMULL
173 : leunga 565 | FICOML
174 :     | FICOMPL
175 : george 555 | FISUBL
176 :     | FISUBRL
177 :     | FIDIVL
178 :     | FIDIVRL
179 : monnier 411 datatype funOp =
180 :     FABS
181 :     | FCHS
182 : george 545 | FSIN
183 :     | FCOS
184 :     | FTAN
185 :     | FSCALE
186 :     | FRNDINT
187 :     | FSQRT
188 :     | FTST
189 :     | FXAM
190 :     | FINCSTP
191 :     | FDECSTP
192 :     datatype fenvOp =
193 :     FLDENV
194 :     | FNLDENV
195 :     | FSTENV
196 :     | FNSTENV
197 : monnier 411 datatype instruction =
198 :     NOP
199 :     | JMP of (operand * Label.label list)
200 :     | JCC of {cond:cond, opnd:operand}
201 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
202 : leunga 594 | ENTER of {src1:operand, src2:operand}
203 : george 545 | LEAVE
204 : monnier 429 | RET of operand option
205 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
206 :     | LEA of {r32:int, addr:operand}
207 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
208 :     | CMPW of {lsrc:operand, rsrc:operand}
209 :     | CMPB of {lsrc:operand, rsrc:operand}
210 :     | TESTL of {lsrc:operand, rsrc:operand}
211 :     | TESTW of {lsrc:operand, rsrc:operand}
212 :     | TESTB of {lsrc:operand, rsrc:operand}
213 : leunga 646 | BITOP of {bitOp:bitOp, lsrc:operand, rsrc:operand}
214 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
215 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
216 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
217 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
218 : george 545 | SET of {cond:cond, opnd:operand}
219 :     | CMOV of {cond:cond, src:operand, dst:int}
220 :     | PUSHL of operand
221 :     | PUSHW of operand
222 :     | PUSHB of operand
223 : monnier 411 | POP of operand
224 :     | CDQ
225 :     | INTO
226 :     | COPY of {dst:int list, src:int list, tmp:operand option}
227 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
228 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
229 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
230 : monnier 411 | FUNARY of funOp
231 :     | FUCOMPP
232 : george 545 | FCOMPP
233 :     | FXCH of {opnd:int}
234 :     | FSTPL of operand
235 :     | FSTPS of operand
236 : george 555 | FSTPT of operand
237 : leunga 579 | FSTL of operand
238 :     | FSTS of operand
239 : leunga 565 | FLD1
240 :     | FLDL2E
241 :     | FLDL2T
242 :     | FLDLG2
243 :     | FLDLN2
244 :     | FLDPI
245 :     | FLDZ
246 : george 545 | FLDL of operand
247 :     | FLDS of operand
248 : george 555 | FLDT of operand
249 : monnier 411 | FILD of operand
250 : leunga 565 | FILDL of operand
251 :     | FILDLL of operand
252 : monnier 411 | FNSTSW
253 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
254 : monnier 411 | SAHF
255 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
256 : leunga 624 | SOURCE of {}
257 :     | SINK of {}
258 :     | PHI of {}
259 : monnier 411 end
260 : monnier 247
261 : george 545 functor X86Instr(structure LabelExp : LABELEXP
262 :     structure Region : REGION
263 : monnier 411 ) : X86INSTR =
264 :     struct
265 :     structure C = X86Cells
266 :     structure Region = Region
267 : george 545 structure LabelExp = LabelExp
268 :     structure Constant = LabelExp.Constant
269 : monnier 411 datatype operand =
270 :     Immed of Int32.int
271 :     | ImmedLabel of LabelExp.labexp
272 :     | Relative of int
273 :     | LabelEA of LabelExp.labexp
274 :     | Direct of int
275 :     | FDirect of int
276 : george 555 | ST of int
277 : monnier 498 | MemReg of int
278 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
279 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
280 :     }
281 : george 545 type addressing_mode = operand
282 : monnier 411 type ea = operand
283 :     datatype cond =
284 :     EQ
285 :     | NE
286 :     | LT
287 :     | LE
288 :     | GT
289 :     | GE
290 :     | B
291 :     | BE
292 :     | A
293 :     | AE
294 :     | C
295 :     | NC
296 :     | P
297 :     | NP
298 :     | O
299 :     | NO
300 : george 545 datatype binaryOp =
301 :     ADDL
302 :     | SUBL
303 :     | ANDL
304 :     | ORL
305 :     | XORL
306 :     | SHLL
307 :     | SARL
308 :     | SHRL
309 :     | ADCL
310 :     | SBBL
311 :     | ADDW
312 :     | SUBW
313 :     | ANDW
314 :     | ORW
315 :     | XORW
316 :     | SHLW
317 :     | SARW
318 :     | SHRW
319 :     | ADDB
320 :     | SUBB
321 :     | ANDB
322 :     | ORB
323 :     | XORB
324 :     | SHLB
325 :     | SARB
326 :     | SHRB
327 : leunga 646 | BTSW
328 :     | BTCW
329 :     | BTRW
330 :     | BTSL
331 :     | BTCL
332 :     | BTRL
333 :     | ROLW
334 :     | RORW
335 :     | ROLL
336 :     | RORL
337 :     | XCHGB
338 :     | XCHGW
339 :     | XCHGL
340 :     | LOCK_ADCW
341 :     | LOCK_ADCL
342 :     | LOCK_ADDW
343 :     | LOCK_ADDL
344 :     | LOCK_ANDW
345 :     | LOCK_ANDL
346 :     | LOCK_BTSW
347 :     | LOCK_BTSL
348 :     | LOCK_BTRW
349 :     | LOCK_BTRL
350 :     | LOCK_BTCW
351 :     | LOCK_BTCL
352 :     | LOCK_ORW
353 :     | LOCK_ORL
354 :     | LOCK_SBBW
355 :     | LOCK_SBBL
356 :     | LOCK_SUBW
357 :     | LOCK_SUBL
358 :     | LOCK_XORW
359 :     | LOCK_XORL
360 : leunga 657 | LOCK_XADDB
361 :     | LOCK_XADDW
362 :     | LOCK_XADDL
363 :     | LOCK_CMPXCHGB
364 :     | LOCK_CMPXCHGW
365 :     | LOCK_CMPXCHGL
366 : george 545 datatype multDivOp =
367 : leunga 606 MULL
368 :     | IDIVL
369 :     | DIVL
370 : george 545 datatype unaryOp =
371 :     DECL
372 :     | INCL
373 :     | NEGL
374 :     | NOTL
375 :     | NOTW
376 :     | NOTB
377 : leunga 646 | LOCK_DECL
378 :     | LOCK_INCL
379 :     | LOCK_NEGL
380 :     | LOCK_NOTL
381 :     datatype bitOp =
382 :     BTW
383 :     | BTL
384 :     | LOCK_BTW
385 :     | LOCK_BTL
386 : george 545 datatype move =
387 :     MOVL
388 :     | MOVB
389 :     | MOVW
390 :     | MOVSWL
391 :     | MOVZWL
392 :     | MOVSBL
393 :     | MOVZBL
394 : monnier 411 datatype fbinOp =
395 :     FADDP
396 : george 555 | FADDS
397 : monnier 411 | FMULP
398 : george 555 | FMULS
399 : leunga 565 | FCOMS
400 :     | FCOMPS
401 : monnier 411 | FSUBP
402 : george 555 | FSUBS
403 : monnier 411 | FSUBRP
404 : george 555 | FSUBRS
405 : monnier 411 | FDIVP
406 : george 555 | FDIVS
407 : monnier 411 | FDIVRP
408 : george 555 | FDIVRS
409 : leunga 565 | FADDL
410 :     | FMULL
411 :     | FCOML
412 :     | FCOMPL
413 :     | FSUBL
414 :     | FSUBRL
415 :     | FDIVL
416 :     | FDIVRL
417 :     datatype fibinOp =
418 :     FIADDS
419 :     | FIMULS
420 :     | FICOMS
421 :     | FICOMPS
422 :     | FISUBS
423 :     | FISUBRS
424 :     | FIDIVS
425 : george 555 | FIDIVRS
426 :     | FIADDL
427 :     | FIMULL
428 : leunga 565 | FICOML
429 :     | FICOMPL
430 : george 555 | FISUBL
431 :     | FISUBRL
432 :     | FIDIVL
433 :     | FIDIVRL
434 : monnier 411 datatype funOp =
435 :     FABS
436 :     | FCHS
437 : george 545 | FSIN
438 :     | FCOS
439 :     | FTAN
440 :     | FSCALE
441 :     | FRNDINT
442 :     | FSQRT
443 :     | FTST
444 :     | FXAM
445 :     | FINCSTP
446 :     | FDECSTP
447 :     datatype fenvOp =
448 :     FLDENV
449 :     | FNLDENV
450 :     | FSTENV
451 :     | FNSTENV
452 : monnier 411 datatype instruction =
453 :     NOP
454 :     | JMP of (operand * Label.label list)
455 :     | JCC of {cond:cond, opnd:operand}
456 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
457 : leunga 594 | ENTER of {src1:operand, src2:operand}
458 : george 545 | LEAVE
459 : monnier 429 | RET of operand option
460 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
461 :     | LEA of {r32:int, addr:operand}
462 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
463 :     | CMPW of {lsrc:operand, rsrc:operand}
464 :     | CMPB of {lsrc:operand, rsrc:operand}
465 :     | TESTL of {lsrc:operand, rsrc:operand}
466 :     | TESTW of {lsrc:operand, rsrc:operand}
467 :     | TESTB of {lsrc:operand, rsrc:operand}
468 : leunga 646 | BITOP of {bitOp:bitOp, lsrc:operand, rsrc:operand}
469 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
470 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
471 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
472 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
473 : george 545 | SET of {cond:cond, opnd:operand}
474 :     | CMOV of {cond:cond, src:operand, dst:int}
475 :     | PUSHL of operand
476 :     | PUSHW of operand
477 :     | PUSHB of operand
478 : monnier 411 | POP of operand
479 :     | CDQ
480 :     | INTO
481 :     | COPY of {dst:int list, src:int list, tmp:operand option}
482 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
483 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
484 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
485 : monnier 411 | FUNARY of funOp
486 :     | FUCOMPP
487 : george 545 | FCOMPP
488 :     | FXCH of {opnd:int}
489 :     | FSTPL of operand
490 :     | FSTPS of operand
491 : george 555 | FSTPT of operand
492 : leunga 579 | FSTL of operand
493 :     | FSTS of operand
494 : leunga 565 | FLD1
495 :     | FLDL2E
496 :     | FLDL2T
497 :     | FLDLG2
498 :     | FLDLN2
499 :     | FLDPI
500 :     | FLDZ
501 : george 545 | FLDL of operand
502 :     | FLDS of operand
503 : george 555 | FLDT of operand
504 : monnier 411 | FILD of operand
505 : leunga 565 | FILDL of operand
506 :     | FILDLL of operand
507 : monnier 411 | FNSTSW
508 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
509 : monnier 411 | SAHF
510 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
511 : leunga 624 | SOURCE of {}
512 :     | SINK of {}
513 :     | PHI of {}
514 : monnier 247 end
515 :    

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