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 593 - (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 :     UMUL
74 :     | IDIV
75 :     | UDIV
76 :     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 593 | ENTER of (operand * 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 :     end
208 : monnier 247
209 : george 545 functor X86Instr(structure LabelExp : LABELEXP
210 :     structure Region : REGION
211 : monnier 411 ) : X86INSTR =
212 :     struct
213 :     structure C = X86Cells
214 :     structure Region = Region
215 : george 545 structure LabelExp = LabelExp
216 :     structure Constant = LabelExp.Constant
217 : monnier 411 datatype operand =
218 :     Immed of Int32.int
219 :     | ImmedLabel of LabelExp.labexp
220 :     | Relative of int
221 :     | LabelEA of LabelExp.labexp
222 :     | Direct of int
223 :     | FDirect of int
224 : george 555 | ST of int
225 : monnier 498 | MemReg of int
226 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
227 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
228 :     }
229 : george 545 type addressing_mode = operand
230 : monnier 411 type ea = operand
231 :     datatype cond =
232 :     EQ
233 :     | NE
234 :     | LT
235 :     | LE
236 :     | GT
237 :     | GE
238 :     | B
239 :     | BE
240 :     | A
241 :     | AE
242 :     | C
243 :     | NC
244 :     | P
245 :     | NP
246 :     | O
247 :     | NO
248 : george 545 datatype binaryOp =
249 :     ADDL
250 :     | SUBL
251 :     | ANDL
252 :     | ORL
253 :     | XORL
254 :     | SHLL
255 :     | SARL
256 :     | SHRL
257 :     | ADCL
258 :     | SBBL
259 :     | ADDW
260 :     | SUBW
261 :     | ANDW
262 :     | ORW
263 :     | XORW
264 :     | SHLW
265 :     | SARW
266 :     | SHRW
267 :     | ADDB
268 :     | SUBB
269 :     | ANDB
270 :     | ORB
271 :     | XORB
272 :     | SHLB
273 :     | SARB
274 :     | SHRB
275 :     datatype multDivOp =
276 :     UMUL
277 :     | IDIV
278 :     | UDIV
279 :     datatype unaryOp =
280 :     DECL
281 :     | INCL
282 :     | NEGL
283 :     | NOTL
284 :     | NOTW
285 :     | NOTB
286 :     datatype move =
287 :     MOVL
288 :     | MOVB
289 :     | MOVW
290 :     | MOVSWL
291 :     | MOVZWL
292 :     | MOVSBL
293 :     | MOVZBL
294 : monnier 411 datatype fbinOp =
295 :     FADDP
296 : george 555 | FADDS
297 : monnier 411 | FMULP
298 : george 555 | FMULS
299 : leunga 565 | FCOMS
300 :     | FCOMPS
301 : monnier 411 | FSUBP
302 : george 555 | FSUBS
303 : monnier 411 | FSUBRP
304 : george 555 | FSUBRS
305 : monnier 411 | FDIVP
306 : george 555 | FDIVS
307 : monnier 411 | FDIVRP
308 : george 555 | FDIVRS
309 : leunga 565 | FADDL
310 :     | FMULL
311 :     | FCOML
312 :     | FCOMPL
313 :     | FSUBL
314 :     | FSUBRL
315 :     | FDIVL
316 :     | FDIVRL
317 :     datatype fibinOp =
318 :     FIADDS
319 :     | FIMULS
320 :     | FICOMS
321 :     | FICOMPS
322 :     | FISUBS
323 :     | FISUBRS
324 :     | FIDIVS
325 : george 555 | FIDIVRS
326 :     | FIADDL
327 :     | FIMULL
328 : leunga 565 | FICOML
329 :     | FICOMPL
330 : george 555 | FISUBL
331 :     | FISUBRL
332 :     | FIDIVL
333 :     | FIDIVRL
334 : monnier 411 datatype funOp =
335 :     FABS
336 :     | FCHS
337 : george 545 | FSIN
338 :     | FCOS
339 :     | FTAN
340 :     | FSCALE
341 :     | FRNDINT
342 :     | FSQRT
343 :     | FTST
344 :     | FXAM
345 :     | FINCSTP
346 :     | FDECSTP
347 :     datatype fenvOp =
348 :     FLDENV
349 :     | FNLDENV
350 :     | FSTENV
351 :     | FNSTENV
352 : monnier 411 datatype instruction =
353 :     NOP
354 :     | JMP of (operand * Label.label list)
355 :     | JCC of {cond:cond, opnd:operand}
356 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
357 : leunga 593 | ENTER of (operand * operand)
358 : george 545 | LEAVE
359 : monnier 429 | RET of operand option
360 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
361 :     | LEA of {r32:int, addr:operand}
362 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
363 :     | CMPW of {lsrc:operand, rsrc:operand}
364 :     | CMPB of {lsrc:operand, rsrc:operand}
365 :     | TESTL of {lsrc:operand, rsrc:operand}
366 :     | TESTW of {lsrc:operand, rsrc:operand}
367 :     | TESTB of {lsrc:operand, rsrc:operand}
368 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
369 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
370 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
371 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
372 : george 545 | SET of {cond:cond, opnd:operand}
373 :     | CMOV of {cond:cond, src:operand, dst:int}
374 :     | PUSHL of operand
375 :     | PUSHW of operand
376 :     | PUSHB of operand
377 : monnier 411 | POP of operand
378 :     | CDQ
379 :     | INTO
380 :     | COPY of {dst:int list, src:int list, tmp:operand option}
381 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
382 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
383 : leunga 565 | FIBINARY of {binOp:fibinOp, src:operand}
384 : monnier 411 | FUNARY of funOp
385 :     | FUCOMPP
386 : george 545 | FCOMPP
387 :     | FXCH of {opnd:int}
388 :     | FSTPL of operand
389 :     | FSTPS of operand
390 : george 555 | FSTPT of operand
391 : leunga 579 | FSTL of operand
392 :     | FSTS of operand
393 : leunga 565 | FLD1
394 :     | FLDL2E
395 :     | FLDL2T
396 :     | FLDLG2
397 :     | FLDLN2
398 :     | FLDPI
399 :     | FLDZ
400 : george 545 | FLDL of operand
401 :     | FLDS of operand
402 : george 555 | FLDT of operand
403 : monnier 411 | FILD of operand
404 : leunga 565 | FILDL of operand
405 :     | FILDLL of operand
406 : monnier 411 | FNSTSW
407 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
408 : monnier 411 | SAHF
409 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
410 : monnier 247 end
411 :    

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