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

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