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/alpha/instructions/alphaInstr.sml
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/alpha/instructions/alphaInstr.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 410 - (view) (download)
Original Path: sml/branches/SMLNJ/src/MLRISC/alpha/instructions/alphaInstr.sml

1 : monnier 409 (*
2 :     * This file was automatically generated by MDGen
3 :     * from the machine description file "alpha/alpha.md".
4 :     *)
5 :    
6 :    
7 :     signature ALPHAINSTR =
8 :     sig
9 :     structure C : ALPHACELLS
10 :     structure Constant: CONSTANT
11 :     structure Region : REGION
12 :     datatype ea =
13 :     Direct of int
14 :     | FDirect of int
15 :     | Displace of {base:int, disp:int}
16 :     datatype operand =
17 :     REGop of int
18 :     | IMMop of int
19 :     | HILABop of LabelExp.labexp
20 :     | LOLABop of LabelExp.labexp
21 :     | LABop of LabelExp.labexp
22 :     | CONSTop of Constant.const
23 :     datatype branch =
24 :     BR
25 :     | BSR
26 :     | BLBC
27 :     | BEQ
28 :     | BLT
29 :     | BLE
30 :     | BLBS
31 :     | BNE
32 :     | BGE
33 :     | BGT
34 :     datatype fbranch =
35 :     FBEQ
36 :     | FBLT
37 :     | FBLE
38 :     | FBNE
39 :     | FBGE
40 :     | FBGT
41 :     datatype load =
42 :     LDL
43 :     | LDL_L
44 :     | LDQ
45 :     | LDQ_L
46 :     | LDQ_U
47 :     datatype store =
48 :     STL
49 :     | STQ
50 :     | STQ_U
51 :     datatype fload =
52 :     LDF
53 :     | LDG
54 :     | LDS
55 :     | LDT
56 :     datatype fstore =
57 :     STF
58 :     | STG
59 :     | STS
60 :     | STT
61 :     datatype operate =
62 :     ADDL
63 :     | ADDQ
64 :     | CMPBGE
65 :     | CMPEQ
66 :     | CMPLE
67 :     | CMPLT
68 :     | CMPULE
69 :     | CMPULT
70 :     | SUBL
71 :     | SUBQ
72 :     | S4ADDL
73 :     | S4ADDQ
74 :     | S4SUBL
75 :     | S4SUBQ
76 :     | S8ADDL
77 :     | S8ADDQ
78 :     | S8SUBL
79 :     | S8SUBQ
80 :     | AND
81 :     | BIC
82 :     | BIS
83 :     | EQV
84 :     | ORNOT
85 :     | XOR
86 :     | EXTBL
87 :     | EXTLH
88 :     | EXTLL
89 :     | EXTQH
90 :     | EXTQL
91 :     | EXTWH
92 :     | EXTWL
93 :     | INSBL
94 :     | INSLH
95 :     | INSLL
96 :     | INSQH
97 :     | INSQL
98 :     | INSWH
99 :     | INSWL
100 :     | MSKBL
101 :     | MSKLH
102 :     | MSKLL
103 :     | MSKQH
104 :     | MSKQL
105 :     | MSKWH
106 :     | MSKWL
107 :     | SLL
108 :     | SRA
109 :     | SRL
110 :     | ZAP
111 :     | ZAPNOT
112 :     | MULL
113 :     | MULQ
114 :     | UMULH
115 :     | SGNXL
116 :     datatype cmove =
117 :     CMOVEQ
118 :     | CMOVLBC
119 :     | CMOVLBS
120 :     | CMOVGE
121 :     | CMOVGT
122 :     | CMOVLE
123 :     | CMOVLT
124 :     | CMOVNE
125 :     datatype pseudo_op =
126 :     DIVL
127 :     | DIVLU
128 :     datatype operateV =
129 :     ADDLV
130 :     | ADDQV
131 :     | SUBLV
132 :     | SUBQV
133 :     | MULLV
134 :     | MULQV
135 :     datatype funary =
136 :     CVTLQ
137 :     | CVTQL
138 :     | CVTQLSV
139 :     | CVTQLV
140 :     | CVTQS
141 :     | CVTQSC
142 :     | CVTQT
143 :     | CVTQTC
144 :     | CVTTS
145 :     | CVTTSC
146 :     | CVTTQ
147 :     | CVTTQC
148 :     datatype foperate =
149 :     CPYS
150 :     | CPYSE
151 :     | CPYSN
152 :     | MF_FPCR
153 :     | MT_FPCR
154 :     | CMPTEQ
155 :     | CMPTLT
156 :     | CMPTLE
157 :     | CMPTUN
158 :     | CMPTEQSU
159 :     | CMPTLTSU
160 :     | CMPTLESU
161 :     | CMPTUNSU
162 :     datatype fcmove =
163 :     FCMOVEQ
164 :     | FCMOVEGE
165 :     | FCMOVEGT
166 :     | FCMOVLE
167 :     | FCMOVELT
168 :     | FCMOVENE
169 :     datatype foperateV =
170 :     ADDSSUD
171 :     | ADDSSU
172 :     | ADDTSUD
173 :     | ADDTSU
174 :     | DIVSSUD
175 :     | DIVSSU
176 :     | DIVTSUD
177 :     | DIVTSU
178 :     | MULSSUD
179 :     | MULSSU
180 :     | MULTSUD
181 :     | MULTSU
182 :     | SUBSSUD
183 :     | SUBSSU
184 :     | SUBTSUD
185 :     | SUBTSU
186 :     datatype osf_user_palcode =
187 :     BPT
188 :     | BUGCHK
189 :     | CALLSYS
190 :     | GENTRAP
191 :     | IMB
192 :     | RDUNIQUE
193 :     | WRUNIQUE
194 :     datatype instruction =
195 :     DEFFREG of int
196 :     | LDA of {r:int, b:int, d:operand}
197 :     | LDAH of {r:int, b:int, d:operand}
198 :     | LOAD of {ldOp:load, r:int, b:int, d:operand, mem:Region.region}
199 :     | STORE of {stOp:store, r:int, b:int, d:operand, mem:Region.region}
200 :     | FLOAD of {ldOp:fload, r:int, b:int, d:operand, mem:Region.region}
201 :     | FSTORE of {stOp:fstore, r:int, b:int, d:operand, mem:Region.region
202 :     }
203 :     | JMPL of ({r:int, b:int, d:int} * Label.label list)
204 :     | JSR of ({r:int, b:int, d:int} * C.cellset * C.cellset * Region.region)
205 :     | RET of {r:int, b:int, d:int}
206 :     | BRANCH of (branch * int * Label.label)
207 :     | FBRANCH of (fbranch * int * Label.label)
208 :     | OPERATE of {oper:operate, ra:int, rb:operand, rc:int}
209 :     | OPERATEV of {oper:operateV, ra:int, rb:operand, rc:int}
210 :     | CMOVE of {oper:cmove, ra:int, rb:operand, rc:int}
211 :     | PSEUDOARITH of {oper:pseudo_op, ra:int, rb:operand, rc:int, tmps:C.cellset
212 :     }
213 :     | COPY of {dst:int list, src:int list, impl:instruction list option ref
214 :     , tmp:ea option}
215 :     | FCOPY of {dst:int list, src:int list, impl:instruction list option ref
216 :     , tmp:ea option}
217 :     | FUNARY of {oper:funary, fb:int, fc:int}
218 :     | FOPERATE of {oper:foperate, fa:int, fb:int, fc:int}
219 :     | FOPERATEV of {oper:foperateV, fa:int, fb:int, fc:int}
220 :     | FCMOVE of {oper:fcmove, fa:int, fb:int, fc:int}
221 :     | TRAPB
222 :     | CALL_PAL of {code:osf_user_palcode, def:int list, use:int list}
223 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
224 :     | GROUP of Annotations.annotation
225 :     end
226 :    
227 :     functor AlphaInstr(structure Const : CONSTANT
228 :     structure Region : REGION
229 :     ) : ALPHAINSTR =
230 :     struct
231 :     structure C = AlphaCells
232 :     structure Region = Region
233 :     structure Constant = Const
234 :     datatype ea =
235 :     Direct of int
236 :     | FDirect of int
237 :     | Displace of {base:int, disp:int}
238 :     datatype operand =
239 :     REGop of int
240 :     | IMMop of int
241 :     | HILABop of LabelExp.labexp
242 :     | LOLABop of LabelExp.labexp
243 :     | LABop of LabelExp.labexp
244 :     | CONSTop of Constant.const
245 :     datatype branch =
246 :     BR
247 :     | BSR
248 :     | BLBC
249 :     | BEQ
250 :     | BLT
251 :     | BLE
252 :     | BLBS
253 :     | BNE
254 :     | BGE
255 :     | BGT
256 :     datatype fbranch =
257 :     FBEQ
258 :     | FBLT
259 :     | FBLE
260 :     | FBNE
261 :     | FBGE
262 :     | FBGT
263 :     datatype load =
264 :     LDL
265 :     | LDL_L
266 :     | LDQ
267 :     | LDQ_L
268 :     | LDQ_U
269 :     datatype store =
270 :     STL
271 :     | STQ
272 :     | STQ_U
273 :     datatype fload =
274 :     LDF
275 :     | LDG
276 :     | LDS
277 :     | LDT
278 :     datatype fstore =
279 :     STF
280 :     | STG
281 :     | STS
282 :     | STT
283 :     datatype operate =
284 :     ADDL
285 :     | ADDQ
286 :     | CMPBGE
287 :     | CMPEQ
288 :     | CMPLE
289 :     | CMPLT
290 :     | CMPULE
291 :     | CMPULT
292 :     | SUBL
293 :     | SUBQ
294 :     | S4ADDL
295 :     | S4ADDQ
296 :     | S4SUBL
297 :     | S4SUBQ
298 :     | S8ADDL
299 :     | S8ADDQ
300 :     | S8SUBL
301 :     | S8SUBQ
302 :     | AND
303 :     | BIC
304 :     | BIS
305 :     | EQV
306 :     | ORNOT
307 :     | XOR
308 :     | EXTBL
309 :     | EXTLH
310 :     | EXTLL
311 :     | EXTQH
312 :     | EXTQL
313 :     | EXTWH
314 :     | EXTWL
315 :     | INSBL
316 :     | INSLH
317 :     | INSLL
318 :     | INSQH
319 :     | INSQL
320 :     | INSWH
321 :     | INSWL
322 :     | MSKBL
323 :     | MSKLH
324 :     | MSKLL
325 :     | MSKQH
326 :     | MSKQL
327 :     | MSKWH
328 :     | MSKWL
329 :     | SLL
330 :     | SRA
331 :     | SRL
332 :     | ZAP
333 :     | ZAPNOT
334 :     | MULL
335 :     | MULQ
336 :     | UMULH
337 :     | SGNXL
338 :     datatype cmove =
339 :     CMOVEQ
340 :     | CMOVLBC
341 :     | CMOVLBS
342 :     | CMOVGE
343 :     | CMOVGT
344 :     | CMOVLE
345 :     | CMOVLT
346 :     | CMOVNE
347 :     datatype pseudo_op =
348 :     DIVL
349 :     | DIVLU
350 :     datatype operateV =
351 :     ADDLV
352 :     | ADDQV
353 :     | SUBLV
354 :     | SUBQV
355 :     | MULLV
356 :     | MULQV
357 :     datatype funary =
358 :     CVTLQ
359 :     | CVTQL
360 :     | CVTQLSV
361 :     | CVTQLV
362 :     | CVTQS
363 :     | CVTQSC
364 :     | CVTQT
365 :     | CVTQTC
366 :     | CVTTS
367 :     | CVTTSC
368 :     | CVTTQ
369 :     | CVTTQC
370 :     datatype foperate =
371 :     CPYS
372 :     | CPYSE
373 :     | CPYSN
374 :     | MF_FPCR
375 :     | MT_FPCR
376 :     | CMPTEQ
377 :     | CMPTLT
378 :     | CMPTLE
379 :     | CMPTUN
380 :     | CMPTEQSU
381 :     | CMPTLTSU
382 :     | CMPTLESU
383 :     | CMPTUNSU
384 :     datatype fcmove =
385 :     FCMOVEQ
386 :     | FCMOVEGE
387 :     | FCMOVEGT
388 :     | FCMOVLE
389 :     | FCMOVELT
390 :     | FCMOVENE
391 :     datatype foperateV =
392 :     ADDSSUD
393 :     | ADDSSU
394 :     | ADDTSUD
395 :     | ADDTSU
396 :     | DIVSSUD
397 :     | DIVSSU
398 :     | DIVTSUD
399 :     | DIVTSU
400 :     | MULSSUD
401 :     | MULSSU
402 :     | MULTSUD
403 :     | MULTSU
404 :     | SUBSSUD
405 :     | SUBSSU
406 :     | SUBTSUD
407 :     | SUBTSU
408 :     datatype osf_user_palcode =
409 :     BPT
410 :     | BUGCHK
411 :     | CALLSYS
412 :     | GENTRAP
413 :     | IMB
414 :     | RDUNIQUE
415 :     | WRUNIQUE
416 :     datatype instruction =
417 :     DEFFREG of int
418 :     | LDA of {r:int, b:int, d:operand}
419 :     | LDAH of {r:int, b:int, d:operand}
420 :     | LOAD of {ldOp:load, r:int, b:int, d:operand, mem:Region.region}
421 :     | STORE of {stOp:store, r:int, b:int, d:operand, mem:Region.region}
422 :     | FLOAD of {ldOp:fload, r:int, b:int, d:operand, mem:Region.region}
423 :     | FSTORE of {stOp:fstore, r:int, b:int, d:operand, mem:Region.region
424 :     }
425 :     | JMPL of ({r:int, b:int, d:int} * Label.label list)
426 :     | JSR of ({r:int, b:int, d:int} * C.cellset * C.cellset * Region.region)
427 :     | RET of {r:int, b:int, d:int}
428 :     | BRANCH of (branch * int * Label.label)
429 :     | FBRANCH of (fbranch * int * Label.label)
430 :     | OPERATE of {oper:operate, ra:int, rb:operand, rc:int}
431 :     | OPERATEV of {oper:operateV, ra:int, rb:operand, rc:int}
432 :     | CMOVE of {oper:cmove, ra:int, rb:operand, rc:int}
433 :     | PSEUDOARITH of {oper:pseudo_op, ra:int, rb:operand, rc:int, tmps:C.cellset
434 :     }
435 :     | COPY of {dst:int list, src:int list, impl:instruction list option ref
436 :     , tmp:ea option}
437 :     | FCOPY of {dst:int list, src:int list, impl:instruction list option ref
438 :     , tmp:ea option}
439 :     | FUNARY of {oper:funary, fb:int, fc:int}
440 :     | FOPERATE of {oper:foperate, fa:int, fb:int, fc:int}
441 :     | FOPERATEV of {oper:foperateV, fa:int, fb:int, fc:int}
442 :     | FCMOVE of {oper:fcmove, fa:int, fb:int, fc:int}
443 :     | TRAPB
444 :     | CALL_PAL of {code:osf_user_palcode, def:int list, use:int list}
445 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
446 :     | GROUP of Annotations.annotation
447 :     end
448 :    

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