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

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

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