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

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 : monnier 429 | DIVQ
129 :     | DIVQU
130 :     | REML
131 :     | REMLU
132 :     | REMQ
133 :     | REMQU
134 : monnier 409 datatype operateV =
135 :     ADDLV
136 :     | ADDQV
137 :     | SUBLV
138 :     | SUBQV
139 :     | MULLV
140 :     | MULQV
141 :     datatype funary =
142 :     CVTLQ
143 :     | CVTQL
144 :     | CVTQLSV
145 :     | CVTQLV
146 :     | CVTQS
147 :     | CVTQSC
148 :     | CVTQT
149 :     | CVTQTC
150 :     | CVTTS
151 :     | CVTTSC
152 : monnier 429 | CVTST
153 :     | CVTSTS
154 : monnier 409 | CVTTQ
155 :     | CVTTQC
156 :     datatype foperate =
157 :     CPYS
158 :     | CPYSE
159 :     | CPYSN
160 :     | MF_FPCR
161 :     | MT_FPCR
162 :     | CMPTEQ
163 :     | CMPTLT
164 :     | CMPTLE
165 :     | CMPTUN
166 :     | CMPTEQSU
167 :     | CMPTLTSU
168 :     | CMPTLESU
169 :     | CMPTUNSU
170 :     datatype fcmove =
171 :     FCMOVEQ
172 :     | FCMOVEGE
173 :     | FCMOVEGT
174 :     | FCMOVLE
175 :     | FCMOVELT
176 :     | FCMOVENE
177 :     datatype foperateV =
178 :     ADDSSUD
179 :     | ADDSSU
180 :     | ADDTSUD
181 :     | ADDTSU
182 :     | DIVSSUD
183 :     | DIVSSU
184 :     | DIVTSUD
185 :     | DIVTSU
186 :     | MULSSUD
187 :     | MULSSU
188 :     | MULTSUD
189 :     | MULTSU
190 :     | SUBSSUD
191 :     | SUBSSU
192 :     | SUBTSUD
193 :     | SUBTSU
194 :     datatype osf_user_palcode =
195 :     BPT
196 :     | BUGCHK
197 :     | CALLSYS
198 :     | GENTRAP
199 :     | IMB
200 :     | RDUNIQUE
201 :     | WRUNIQUE
202 :     datatype instruction =
203 :     DEFFREG of int
204 :     | LDA of {r:int, b:int, d:operand}
205 :     | LDAH of {r:int, b:int, d:operand}
206 :     | LOAD of {ldOp:load, r:int, b:int, d:operand, mem:Region.region}
207 :     | STORE of {stOp:store, r:int, b:int, d:operand, mem:Region.region}
208 :     | FLOAD of {ldOp:fload, r:int, b:int, d:operand, mem:Region.region}
209 :     | FSTORE of {stOp:fstore, r:int, b:int, d:operand, mem:Region.region
210 :     }
211 :     | JMPL of ({r:int, b:int, d:int} * Label.label list)
212 :     | JSR of ({r:int, b:int, d:int} * C.cellset * C.cellset * Region.region)
213 :     | RET of {r:int, b:int, d:int}
214 :     | BRANCH of (branch * int * Label.label)
215 :     | FBRANCH of (fbranch * int * Label.label)
216 :     | OPERATE of {oper:operate, ra:int, rb:operand, rc:int}
217 :     | OPERATEV of {oper:operateV, ra:int, rb:operand, rc:int}
218 :     | CMOVE of {oper:cmove, ra:int, rb:operand, rc:int}
219 :     | PSEUDOARITH of {oper:pseudo_op, ra:int, rb:operand, rc:int, tmps:C.cellset
220 :     }
221 :     | COPY of {dst:int list, src:int list, impl:instruction list option ref
222 :     , tmp:ea option}
223 :     | FCOPY of {dst:int list, src:int list, impl:instruction list option ref
224 :     , tmp:ea option}
225 :     | FUNARY of {oper:funary, fb:int, fc:int}
226 :     | FOPERATE of {oper:foperate, fa:int, fb:int, fc:int}
227 :     | FOPERATEV of {oper:foperateV, fa:int, fb:int, fc:int}
228 :     | FCMOVE of {oper:fcmove, fa:int, fb:int, fc:int}
229 :     | TRAPB
230 :     | CALL_PAL of {code:osf_user_palcode, def:int list, use:int list}
231 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
232 :     | GROUP of Annotations.annotation
233 :     end
234 :    
235 :     functor AlphaInstr(structure Const : CONSTANT
236 :     structure Region : REGION
237 :     ) : ALPHAINSTR =
238 :     struct
239 :     structure C = AlphaCells
240 :     structure Region = Region
241 :     structure Constant = Const
242 :     datatype ea =
243 :     Direct of int
244 :     | FDirect of int
245 :     | Displace of {base:int, disp:int}
246 :     datatype operand =
247 :     REGop of int
248 :     | IMMop of int
249 :     | HILABop of LabelExp.labexp
250 :     | LOLABop of LabelExp.labexp
251 :     | LABop of LabelExp.labexp
252 :     | CONSTop of Constant.const
253 :     datatype branch =
254 :     BR
255 :     | BSR
256 :     | BLBC
257 :     | BEQ
258 :     | BLT
259 :     | BLE
260 :     | BLBS
261 :     | BNE
262 :     | BGE
263 :     | BGT
264 :     datatype fbranch =
265 :     FBEQ
266 :     | FBLT
267 :     | FBLE
268 :     | FBNE
269 :     | FBGE
270 :     | FBGT
271 :     datatype load =
272 :     LDL
273 :     | LDL_L
274 :     | LDQ
275 :     | LDQ_L
276 :     | LDQ_U
277 :     datatype store =
278 :     STL
279 :     | STQ
280 :     | STQ_U
281 :     datatype fload =
282 :     LDF
283 :     | LDG
284 :     | LDS
285 :     | LDT
286 :     datatype fstore =
287 :     STF
288 :     | STG
289 :     | STS
290 :     | STT
291 :     datatype operate =
292 :     ADDL
293 :     | ADDQ
294 :     | CMPBGE
295 :     | CMPEQ
296 :     | CMPLE
297 :     | CMPLT
298 :     | CMPULE
299 :     | CMPULT
300 :     | SUBL
301 :     | SUBQ
302 :     | S4ADDL
303 :     | S4ADDQ
304 :     | S4SUBL
305 :     | S4SUBQ
306 :     | S8ADDL
307 :     | S8ADDQ
308 :     | S8SUBL
309 :     | S8SUBQ
310 :     | AND
311 :     | BIC
312 :     | BIS
313 :     | EQV
314 :     | ORNOT
315 :     | XOR
316 :     | EXTBL
317 :     | EXTLH
318 :     | EXTLL
319 :     | EXTQH
320 :     | EXTQL
321 :     | EXTWH
322 :     | EXTWL
323 :     | INSBL
324 :     | INSLH
325 :     | INSLL
326 :     | INSQH
327 :     | INSQL
328 :     | INSWH
329 :     | INSWL
330 :     | MSKBL
331 :     | MSKLH
332 :     | MSKLL
333 :     | MSKQH
334 :     | MSKQL
335 :     | MSKWH
336 :     | MSKWL
337 :     | SLL
338 :     | SRA
339 :     | SRL
340 :     | ZAP
341 :     | ZAPNOT
342 :     | MULL
343 :     | MULQ
344 :     | UMULH
345 :     | SGNXL
346 :     datatype cmove =
347 :     CMOVEQ
348 :     | CMOVLBC
349 :     | CMOVLBS
350 :     | CMOVGE
351 :     | CMOVGT
352 :     | CMOVLE
353 :     | CMOVLT
354 :     | CMOVNE
355 :     datatype pseudo_op =
356 :     DIVL
357 :     | DIVLU
358 : monnier 429 | DIVQ
359 :     | DIVQU
360 :     | REML
361 :     | REMLU
362 :     | REMQ
363 :     | REMQU
364 : monnier 409 datatype operateV =
365 :     ADDLV
366 :     | ADDQV
367 :     | SUBLV
368 :     | SUBQV
369 :     | MULLV
370 :     | MULQV
371 :     datatype funary =
372 :     CVTLQ
373 :     | CVTQL
374 :     | CVTQLSV
375 :     | CVTQLV
376 :     | CVTQS
377 :     | CVTQSC
378 :     | CVTQT
379 :     | CVTQTC
380 :     | CVTTS
381 :     | CVTTSC
382 : monnier 429 | CVTST
383 :     | CVTSTS
384 : monnier 409 | CVTTQ
385 :     | CVTTQC
386 :     datatype foperate =
387 :     CPYS
388 :     | CPYSE
389 :     | CPYSN
390 :     | MF_FPCR
391 :     | MT_FPCR
392 :     | CMPTEQ
393 :     | CMPTLT
394 :     | CMPTLE
395 :     | CMPTUN
396 :     | CMPTEQSU
397 :     | CMPTLTSU
398 :     | CMPTLESU
399 :     | CMPTUNSU
400 :     datatype fcmove =
401 :     FCMOVEQ
402 :     | FCMOVEGE
403 :     | FCMOVEGT
404 :     | FCMOVLE
405 :     | FCMOVELT
406 :     | FCMOVENE
407 :     datatype foperateV =
408 :     ADDSSUD
409 :     | ADDSSU
410 :     | ADDTSUD
411 :     | ADDTSU
412 :     | DIVSSUD
413 :     | DIVSSU
414 :     | DIVTSUD
415 :     | DIVTSU
416 :     | MULSSUD
417 :     | MULSSU
418 :     | MULTSUD
419 :     | MULTSU
420 :     | SUBSSUD
421 :     | SUBSSU
422 :     | SUBTSUD
423 :     | SUBTSU
424 :     datatype osf_user_palcode =
425 :     BPT
426 :     | BUGCHK
427 :     | CALLSYS
428 :     | GENTRAP
429 :     | IMB
430 :     | RDUNIQUE
431 :     | WRUNIQUE
432 :     datatype instruction =
433 :     DEFFREG of int
434 :     | LDA of {r:int, b:int, d:operand}
435 :     | LDAH of {r:int, b:int, d:operand}
436 :     | LOAD of {ldOp:load, r:int, b:int, d:operand, mem:Region.region}
437 :     | STORE of {stOp:store, r:int, b:int, d:operand, mem:Region.region}
438 :     | FLOAD of {ldOp:fload, r:int, b:int, d:operand, mem:Region.region}
439 :     | FSTORE of {stOp:fstore, r:int, b:int, d:operand, mem:Region.region
440 :     }
441 :     | JMPL of ({r:int, b:int, d:int} * Label.label list)
442 :     | JSR of ({r:int, b:int, d:int} * C.cellset * C.cellset * Region.region)
443 :     | RET of {r:int, b:int, d:int}
444 :     | BRANCH of (branch * int * Label.label)
445 :     | FBRANCH of (fbranch * int * Label.label)
446 :     | OPERATE of {oper:operate, ra:int, rb:operand, rc:int}
447 :     | OPERATEV of {oper:operateV, ra:int, rb:operand, rc:int}
448 :     | CMOVE of {oper:cmove, ra:int, rb:operand, rc:int}
449 :     | PSEUDOARITH of {oper:pseudo_op, ra:int, rb:operand, rc:int, tmps:C.cellset
450 :     }
451 :     | COPY of {dst:int list, src:int list, impl:instruction list option ref
452 :     , tmp:ea option}
453 :     | FCOPY of {dst:int list, src:int list, impl:instruction list option ref
454 :     , tmp:ea option}
455 :     | FUNARY of {oper:funary, fb:int, fc:int}
456 :     | FOPERATE of {oper:foperate, fa:int, fb:int, fc:int}
457 :     | FOPERATEV of {oper:foperateV, fa:int, fb:int, fc:int}
458 :     | FCMOVE of {oper:fcmove, fa:int, fb:int, fc:int}
459 :     | TRAPB
460 :     | CALL_PAL of {code:osf_user_palcode, def:int list, use:int list}
461 :     | ANNOTATION of {i:instruction, a:Annotations.annotation}
462 :     | GROUP of Annotations.annotation
463 :     end
464 :    

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