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 545 - (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 : monnier 498 | MemReg of int
22 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
23 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
24 :     }
25 : george 545 type addressing_mode = operand
26 : monnier 411 type ea = operand
27 :     datatype cond =
28 :     EQ
29 :     | NE
30 :     | LT
31 :     | LE
32 :     | GT
33 :     | GE
34 :     | B
35 :     | BE
36 :     | A
37 :     | AE
38 :     | C
39 :     | NC
40 :     | P
41 :     | NP
42 :     | O
43 :     | NO
44 : george 545 datatype binaryOp =
45 :     ADDL
46 :     | SUBL
47 :     | ANDL
48 :     | ORL
49 :     | XORL
50 :     | SHLL
51 :     | SARL
52 :     | SHRL
53 :     | ADCL
54 :     | SBBL
55 :     | ADDW
56 :     | SUBW
57 :     | ANDW
58 :     | ORW
59 :     | XORW
60 :     | SHLW
61 :     | SARW
62 :     | SHRW
63 :     | ADDB
64 :     | SUBB
65 :     | ANDB
66 :     | ORB
67 :     | XORB
68 :     | SHLB
69 :     | SARB
70 :     | SHRB
71 :     datatype multDivOp =
72 :     UMUL
73 :     | IDIV
74 :     | UDIV
75 :     datatype unaryOp =
76 :     DECL
77 :     | INCL
78 :     | NEGL
79 :     | NOTL
80 :     | NOTW
81 :     | NOTB
82 :     datatype move =
83 :     MOVL
84 :     | MOVB
85 :     | MOVW
86 :     | MOVSWL
87 :     | MOVZWL
88 :     | MOVSBL
89 :     | MOVZBL
90 : monnier 411 datatype fbinOp =
91 :     FADDP
92 :     | FADD
93 : george 545 | FIADD
94 : monnier 411 | FMULP
95 :     | FMUL
96 : george 545 | FIMUL
97 : monnier 411 | FSUBP
98 :     | FSUB
99 : george 545 | FISUB
100 : monnier 411 | FSUBRP
101 :     | FSUBR
102 : george 545 | FISUBR
103 : monnier 411 | FDIVP
104 :     | FDIV
105 : george 545 | FIDIV
106 : monnier 411 | FDIVRP
107 :     | FDIVR
108 : george 545 | FIDIVR
109 : monnier 411 datatype funOp =
110 :     FABS
111 :     | FCHS
112 : george 545 | FSIN
113 :     | FCOS
114 :     | FTAN
115 :     | FSCALE
116 :     | FRNDINT
117 :     | FSQRT
118 :     | FTST
119 :     | FXAM
120 :     | FINCSTP
121 :     | FDECSTP
122 :     datatype fenvOp =
123 :     FLDENV
124 :     | FNLDENV
125 :     | FSTENV
126 :     | FNSTENV
127 : monnier 411 datatype instruction =
128 :     NOP
129 :     | JMP of (operand * Label.label list)
130 :     | JCC of {cond:cond, opnd:operand}
131 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
132 : george 545 | LEAVE
133 : monnier 429 | RET of operand option
134 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
135 :     | LEA of {r32:int, addr:operand}
136 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
137 :     | CMPW of {lsrc:operand, rsrc:operand}
138 :     | CMPB of {lsrc:operand, rsrc:operand}
139 :     | TESTL of {lsrc:operand, rsrc:operand}
140 :     | TESTW of {lsrc:operand, rsrc:operand}
141 :     | TESTB of {lsrc:operand, rsrc:operand}
142 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
143 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
144 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
145 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
146 : george 545 | SET of {cond:cond, opnd:operand}
147 :     | CMOV of {cond:cond, src:operand, dst:int}
148 :     | PUSHL of operand
149 :     | PUSHW of operand
150 :     | PUSHB of operand
151 : monnier 411 | POP of operand
152 :     | CDQ
153 :     | INTO
154 :     | COPY of {dst:int list, src:int list, tmp:operand option}
155 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
156 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
157 :     | FUNARY of funOp
158 :     | FUCOMPP
159 : george 545 | FCOM
160 :     | FCOMPP
161 :     | FXCH of {opnd:int}
162 :     | FSTPL of operand
163 :     | FSTPS of operand
164 :     | FLDL of operand
165 :     | FLDS of operand
166 : monnier 411 | FILD of operand
167 :     | FNSTSW
168 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
169 : monnier 411 | SAHF
170 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
171 :     end
172 : monnier 247
173 : george 545 functor X86Instr(structure LabelExp : LABELEXP
174 :     structure Region : REGION
175 : monnier 411 ) : X86INSTR =
176 :     struct
177 :     structure C = X86Cells
178 :     structure Region = Region
179 : george 545 structure LabelExp = LabelExp
180 :     structure Constant = LabelExp.Constant
181 : monnier 411 datatype operand =
182 :     Immed of Int32.int
183 :     | ImmedLabel of LabelExp.labexp
184 :     | Relative of int
185 :     | LabelEA of LabelExp.labexp
186 :     | Direct of int
187 :     | FDirect of int
188 : monnier 498 | MemReg of int
189 : monnier 411 | Displace of {base:int, disp:operand, mem:Region.region}
190 :     | Indexed of {base:int option, index:int, scale:int, disp:operand, mem:Region.region
191 :     }
192 : george 545 type addressing_mode = operand
193 : monnier 411 type ea = operand
194 :     datatype cond =
195 :     EQ
196 :     | NE
197 :     | LT
198 :     | LE
199 :     | GT
200 :     | GE
201 :     | B
202 :     | BE
203 :     | A
204 :     | AE
205 :     | C
206 :     | NC
207 :     | P
208 :     | NP
209 :     | O
210 :     | NO
211 : george 545 datatype binaryOp =
212 :     ADDL
213 :     | SUBL
214 :     | ANDL
215 :     | ORL
216 :     | XORL
217 :     | SHLL
218 :     | SARL
219 :     | SHRL
220 :     | ADCL
221 :     | SBBL
222 :     | ADDW
223 :     | SUBW
224 :     | ANDW
225 :     | ORW
226 :     | XORW
227 :     | SHLW
228 :     | SARW
229 :     | SHRW
230 :     | ADDB
231 :     | SUBB
232 :     | ANDB
233 :     | ORB
234 :     | XORB
235 :     | SHLB
236 :     | SARB
237 :     | SHRB
238 :     datatype multDivOp =
239 :     UMUL
240 :     | IDIV
241 :     | UDIV
242 :     datatype unaryOp =
243 :     DECL
244 :     | INCL
245 :     | NEGL
246 :     | NOTL
247 :     | NOTW
248 :     | NOTB
249 :     datatype move =
250 :     MOVL
251 :     | MOVB
252 :     | MOVW
253 :     | MOVSWL
254 :     | MOVZWL
255 :     | MOVSBL
256 :     | MOVZBL
257 : monnier 411 datatype fbinOp =
258 :     FADDP
259 :     | FADD
260 : george 545 | FIADD
261 : monnier 411 | FMULP
262 :     | FMUL
263 : george 545 | FIMUL
264 : monnier 411 | FSUBP
265 :     | FSUB
266 : george 545 | FISUB
267 : monnier 411 | FSUBRP
268 :     | FSUBR
269 : george 545 | FISUBR
270 : monnier 411 | FDIVP
271 :     | FDIV
272 : george 545 | FIDIV
273 : monnier 411 | FDIVRP
274 :     | FDIVR
275 : george 545 | FIDIVR
276 : monnier 411 datatype funOp =
277 :     FABS
278 :     | FCHS
279 : george 545 | FSIN
280 :     | FCOS
281 :     | FTAN
282 :     | FSCALE
283 :     | FRNDINT
284 :     | FSQRT
285 :     | FTST
286 :     | FXAM
287 :     | FINCSTP
288 :     | FDECSTP
289 :     datatype fenvOp =
290 :     FLDENV
291 :     | FNLDENV
292 :     | FSTENV
293 :     | FNSTENV
294 : monnier 411 datatype instruction =
295 :     NOP
296 :     | JMP of (operand * Label.label list)
297 :     | JCC of {cond:cond, opnd:operand}
298 :     | CALL of (operand * C.cellset * C.cellset * Region.region)
299 : george 545 | LEAVE
300 : monnier 429 | RET of operand option
301 : monnier 411 | MOVE of {mvOp:move, src:operand, dst:operand}
302 :     | LEA of {r32:int, addr:operand}
303 : george 545 | CMPL of {lsrc:operand, rsrc:operand}
304 :     | CMPW of {lsrc:operand, rsrc:operand}
305 :     | CMPB of {lsrc:operand, rsrc:operand}
306 :     | TESTL of {lsrc:operand, rsrc:operand}
307 :     | TESTW of {lsrc:operand, rsrc:operand}
308 :     | TESTB of {lsrc:operand, rsrc:operand}
309 : monnier 411 | BINARY of {binOp:binaryOp, src:operand, dst:operand}
310 :     | MULTDIV of {multDivOp:multDivOp, src:operand}
311 : george 545 | MUL3 of {dst:int, src2:Int32.int option, src1:operand}
312 : monnier 411 | UNARY of {unOp:unaryOp, opnd:operand}
313 : george 545 | SET of {cond:cond, opnd:operand}
314 :     | CMOV of {cond:cond, src:operand, dst:int}
315 :     | PUSHL of operand
316 :     | PUSHW of operand
317 :     | PUSHB of operand
318 : monnier 411 | POP of operand
319 :     | CDQ
320 :     | INTO
321 :     | COPY of {dst:int list, src:int list, tmp:operand option}
322 :     | FCOPY of {dst:int list, src:int list, tmp:operand option}
323 :     | FBINARY of {binOp:fbinOp, src:operand, dst:operand}
324 :     | FUNARY of funOp
325 :     | FUCOMPP
326 : george 545 | FCOM
327 :     | FCOMPP
328 :     | FXCH of {opnd:int}
329 :     | FSTPL of operand
330 :     | FSTPS of operand
331 :     | FLDL of operand
332 :     | FLDS of operand
333 : monnier 411 | FILD of operand
334 :     | FNSTSW
335 : george 545 | FENV of {fenvOp:fenvOp, opnd:operand}
336 : monnier 411 | SAHF
337 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
338 : monnier 247 end
339 :    

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