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

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