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

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

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