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

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