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

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