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

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

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