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

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