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

1 : monnier 411 (*
2 : george 545 * This file was automatically generated by MDGen (v2.0)
3 : monnier 411 * from the machine description file "x86/x86.md".
4 : monnier 247 *)
5 :    
6 :    
7 : monnier 411 signature X86INSTR =
8 :     sig
9 :     structure C : X86CELLS
10 :     structure Constant: CONSTANT
11 : george 545 structure LabelExp: LABELEXP
12 : monnier 411 structure Region : REGION
13 : george 545 sharing Constant = LabelExp.Constant
14 : monnier 411 datatype operand =
15 :     Immed of Int32.int
16 : monnier 247 | ImmedLabel of LabelExp.labexp
17 : monnier 411 | Relative of int
18 :     | LabelEA of LabelExp.labexp
19 :     | Direct of int
20 :     | FDirect of int
21 : george 555 | ST of int
22 : monnier 498 | MemReg of int
23 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
24 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
25 :     }
26 : george 545 type addressing_mode = operand
27 : monnier 411 type ea = operand
28 :     datatype cond =
29 :     EQ
30 :     | NE
31 :     | LT
32 :     | LE
33 :     | GT
34 :     | GE
35 :     | B
36 :     | BE
37 :     | A
38 :     | AE
39 :     | C
40 :     | NC
41 :     | P
42 :     | NP
43 :     | O
44 :     | NO
45 : george 545 datatype binaryOp =
46 :     ADDL
47 :     | SUBL
48 :     | ANDL
49 :     | ORL
50 :     | XORL
51 :     | SHLL
52 :     | SARL
53 :     | SHRL
54 :     | ADCL
55 :     | SBBL
56 :     | ADDW
57 :     | SUBW
58 :     | ANDW
59 :     | ORW
60 :     | XORW
61 :     | SHLW
62 :     | SARW
63 :     | SHRW
64 :     | ADDB
65 :     | SUBB
66 :     | ANDB
67 :     | ORB
68 :     | XORB
69 :     | SHLB
70 :     | SARB
71 :     | SHRB
72 :     datatype multDivOp =
73 : leunga 606 MULL
74 :     | IDIVL
75 :     | DIVL
76 : george 545 datatype unaryOp =
77 :     DECL
78 :     | INCL
79 :     | NEGL
80 :     | NOTL
81 :     | NOTW
82 :     | NOTB
83 :     datatype move =
84 :     MOVL
85 :     | MOVB
86 :     | MOVW
87 :     | MOVSWL
88 :     | MOVZWL
89 :     | MOVSBL
90 :     | MOVZBL
91 : monnier 411 datatype fbinOp =
92 :     FADDP
93 : george 555 | FADDS
94 : monnier 411 | FMULP
95 : george 555 | FMULS
96 : leunga 565 | FCOMS
97 :     | FCOMPS
98 : monnier 411 | FSUBP
99 : george 555 | FSUBS
100 : monnier 411 | FSUBRP
101 : george 555 | FSUBRS
102 : monnier 411 | FDIVP
103 : george 555 | FDIVS
104 : monnier 411 | FDIVRP
105 : george 555 | FDIVRS
106 : leunga 565 | FADDL
107 :     | FMULL
108 :     | FCOML
109 :     | FCOMPL
110 :     | FSUBL
111 :     | FSUBRL
112 :     | FDIVL
113 :     | FDIVRL
114 :     datatype fibinOp =
115 :     FIADDS
116 :     | FIMULS
117 :     | FICOMS
118 :     | FICOMPS
119 :     | FISUBS
120 :     | FISUBRS
121 :     | FIDIVS
122 : george 555 | FIDIVRS
123 :     | FIADDL
124 :     | FIMULL
125 : leunga 565 | FICOML
126 :     | FICOMPL
127 : george 555 | FISUBL
128 :     | FISUBRL
129 :     | FIDIVL
130 :     | FIDIVRL
131 : monnier 411 datatype funOp =
132 :     FABS
133 :     | FCHS
134 : george 545 | FSIN
135 :     | FCOS
136 :     | FTAN
137 :     | FSCALE
138 :     | FRNDINT
139 :     | FSQRT
140 :     | FTST
141 :     | FXAM
142 :     | FINCSTP
143 :     | FDECSTP
144 :     datatype fenvOp =
145 :     FLDENV
146 :     | FNLDENV
147 :     | FSTENV
148 :     | FNSTENV
149 : monnier 411 datatype instruction =
150 :     NOP
151 :     | JMP of (operand * Label.label list)
152 :     | JCC of {cond:cond, opnd:operand}
153 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
154 : leunga 594 | ENTER of {src1:operand, src2:operand}
155 : george 545 | LEAVE
156 : monnier 429 | RET of operand option
157 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
158 :     | LEA of {r32:int, addr:operand}
159 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
160 :     | CMPW of {lsrc:operand, rsrc:operand}
161 :     | CMPB of {lsrc:operand, rsrc:operand}
162 :     | TESTL of {lsrc:operand, rsrc:operand}
163 :     | TESTW of {lsrc:operand, rsrc:operand}
164 :     | TESTB of {lsrc:operand, rsrc:operand}
165 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
166 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
167 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
168 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
169 : george 545 | SET of {cond:cond, opnd:operand}
170 :     | CMOV of {cond:cond, src:operand, dst:int}
171 :     | PUSHL of operand
172 :     | PUSHW of operand
173 :     | PUSHB of operand
174 : monnier 411 | POP of operand
175 :     | CDQ
176 :     | INTO
177 :     | COPY of {dst:int list, src:int list, tmp:operand option}
178 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
179 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
180 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
181 : monnier 411 | FUNARY of funOp
182 :     | FUCOMPP
183 : george 545 | FCOMPP
184 :     | FXCH of {opnd:int}
185 :     | FSTPL of operand
186 :     | FSTPS of operand
187 : george 555 | FSTPT of operand
188 : leunga 579 | FSTL of operand
189 :     | FSTS of operand
190 : leunga 565 | FLD1
191 :     | FLDL2E
192 :     | FLDL2T
193 :     | FLDLG2
194 :     | FLDLN2
195 :     | FLDPI
196 :     | FLDZ
197 : george 545 | FLDL of operand
198 :     | FLDS of operand
199 : george 555 | FLDT of operand
200 : monnier 411 | FILD of operand
201 : leunga 565 | FILDL of operand
202 :     | FILDLL of operand
203 : monnier 411 | FNSTSW
204 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
205 : monnier 411 | SAHF
206 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
207 : leunga 624 | SOURCE of {}
208 :     | SINK of {}
209 :     | PHI of {}
210 : monnier 411 end
211 : monnier 247
212 : george 545 functor X86Instr(structure LabelExp : LABELEXP
213 :     structure Region : REGION
214 : monnier 411 ) : X86INSTR =
215 :     struct
216 :     structure C = X86Cells
217 :     structure Region = Region
218 : george 545 structure LabelExp = LabelExp
219 :     structure Constant = LabelExp.Constant
220 : monnier 411 datatype operand =
221 :     Immed of Int32.int
222 :     | ImmedLabel of LabelExp.labexp
223 :     | Relative of int
224 :     | LabelEA of LabelExp.labexp
225 :     | Direct of int
226 :     | FDirect of int
227 : george 555 | ST of int
228 : monnier 498 | MemReg of int
229 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
230 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
231 :     }
232 : george 545 type addressing_mode = operand
233 : monnier 411 type ea = operand
234 :     datatype cond =
235 :     EQ
236 :     | NE
237 :     | LT
238 :     | LE
239 :     | GT
240 :     | GE
241 :     | B
242 :     | BE
243 :     | A
244 :     | AE
245 :     | C
246 :     | NC
247 :     | P
248 :     | NP
249 :     | O
250 :     | NO
251 : george 545 datatype binaryOp =
252 :     ADDL
253 :     | SUBL
254 :     | ANDL
255 :     | ORL
256 :     | XORL
257 :     | SHLL
258 :     | SARL
259 :     | SHRL
260 :     | ADCL
261 :     | SBBL
262 :     | ADDW
263 :     | SUBW
264 :     | ANDW
265 :     | ORW
266 :     | XORW
267 :     | SHLW
268 :     | SARW
269 :     | SHRW
270 :     | ADDB
271 :     | SUBB
272 :     | ANDB
273 :     | ORB
274 :     | XORB
275 :     | SHLB
276 :     | SARB
277 :     | SHRB
278 :     datatype multDivOp =
279 : leunga 606 MULL
280 :     | IDIVL
281 :     | DIVL
282 : george 545 datatype unaryOp =
283 :     DECL
284 :     | INCL
285 :     | NEGL
286 :     | NOTL
287 :     | NOTW
288 :     | NOTB
289 :     datatype move =
290 :     MOVL
291 :     | MOVB
292 :     | MOVW
293 :     | MOVSWL
294 :     | MOVZWL
295 :     | MOVSBL
296 :     | MOVZBL
297 : monnier 411 datatype fbinOp =
298 :     FADDP
299 : george 555 | FADDS
300 : monnier 411 | FMULP
301 : george 555 | FMULS
302 : leunga 565 | FCOMS
303 :     | FCOMPS
304 : monnier 411 | FSUBP
305 : george 555 | FSUBS
306 : monnier 411 | FSUBRP
307 : george 555 | FSUBRS
308 : monnier 411 | FDIVP
309 : george 555 | FDIVS
310 : monnier 411 | FDIVRP
311 : george 555 | FDIVRS
312 : leunga 565 | FADDL
313 :     | FMULL
314 :     | FCOML
315 :     | FCOMPL
316 :     | FSUBL
317 :     | FSUBRL
318 :     | FDIVL
319 :     | FDIVRL
320 :     datatype fibinOp =
321 :     FIADDS
322 :     | FIMULS
323 :     | FICOMS
324 :     | FICOMPS
325 :     | FISUBS
326 :     | FISUBRS
327 :     | FIDIVS
328 : george 555 | FIDIVRS
329 :     | FIADDL
330 :     | FIMULL
331 : leunga 565 | FICOML
332 :     | FICOMPL
333 : george 555 | FISUBL
334 :     | FISUBRL
335 :     | FIDIVL
336 :     | FIDIVRL
337 : monnier 411 datatype funOp =
338 :     FABS
339 :     | FCHS
340 : george 545 | FSIN
341 :     | FCOS
342 :     | FTAN
343 :     | FSCALE
344 :     | FRNDINT
345 :     | FSQRT
346 :     | FTST
347 :     | FXAM
348 :     | FINCSTP
349 :     | FDECSTP
350 :     datatype fenvOp =
351 :     FLDENV
352 :     | FNLDENV
353 :     | FSTENV
354 :     | FNSTENV
355 : monnier 411 datatype instruction =
356 :     NOP
357 :     | JMP of (operand * Label.label list)
358 :     | JCC of {cond:cond, opnd:operand}
359 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
360 : leunga 594 | ENTER of {src1:operand, src2:operand}
361 : george 545 | LEAVE
362 : monnier 429 | RET of operand option
363 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
364 :     | LEA of {r32:int, addr:operand}
365 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
366 :     | CMPW of {lsrc:operand, rsrc:operand}
367 :     | CMPB of {lsrc:operand, rsrc:operand}
368 :     | TESTL of {lsrc:operand, rsrc:operand}
369 :     | TESTW of {lsrc:operand, rsrc:operand}
370 :     | TESTB of {lsrc:operand, rsrc:operand}
371 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
372 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
373 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
374 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
375 : george 545 | SET of {cond:cond, opnd:operand}
376 :     | CMOV of {cond:cond, src:operand, dst:int}
377 :     | PUSHL of operand
378 :     | PUSHW of operand
379 :     | PUSHB of operand
380 : monnier 411 | POP of operand
381 :     | CDQ
382 :     | INTO
383 :     | COPY of {dst:int list, src:int list, tmp:operand option}
384 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
385 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
386 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
387 : monnier 411 | FUNARY of funOp
388 :     | FUCOMPP
389 : george 545 | FCOMPP
390 :     | FXCH of {opnd:int}
391 :     | FSTPL of operand
392 :     | FSTPS of operand
393 : george 555 | FSTPT of operand
394 : leunga 579 | FSTL of operand
395 :     | FSTS of operand
396 : leunga 565 | FLD1
397 :     | FLDL2E
398 :     | FLDL2T
399 :     | FLDLG2
400 :     | FLDLN2
401 :     | FLDPI
402 :     | FLDZ
403 : george 545 | FLDL of operand
404 :     | FLDS of operand
405 : george 555 | FLDT of operand
406 : monnier 411 | FILD of operand
407 : leunga 565 | FILDL of operand
408 :     | FILDLL of operand
409 : monnier 411 | FNSTSW
410 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
411 : monnier 411 | SAHF
412 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
413 : leunga 624 | SOURCE of {}
414 :     | SINK of {}
415 :     | PHI of {}
416 : monnier 247 end
417 :    

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