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 775 - (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 :     | JSR of {r:C.cell, b:C.cell, d:int, defs:C.cellset, uses:C.cellset, mem:Region.region}
230 :     | BSR of {r:C.cell, lab:Label.label, defs:C.cellset, uses:C.cellset, mem:Region.region}
231 :     | RET of {r:C.cell, b:C.cell, d:int}
232 :     | BRANCH of {b:branch, r:C.cell, lab:Label.label}
233 :     | FBRANCH of {b:fbranch, f:C.cell, lab:Label.label}
234 :     | OPERATE of {oper:operate, ra:C.cell, rb:operand, rc:C.cell}
235 :     | OPERATEV of {oper:operateV, ra:C.cell, rb:operand, rc:C.cell}
236 :     | CMOVE of {oper:cmove, ra:C.cell, rb:operand, rc:C.cell}
237 :     | PSEUDOARITH of {oper:pseudo_op, ra:C.cell, rb:operand, rc:C.cell, tmps:C.cellset}
238 :     | COPY of {dst:C.cell list, src:C.cell list, impl:instruction list option ref,
239 :     tmp:ea option}
240 :     | FCOPY of {dst:C.cell list, src:C.cell list, impl:instruction list option ref,
241 :     tmp:ea option}
242 :     | FUNARY of {oper:funary, fb:C.cell, fc:C.cell}
243 :     | FOPERATE of {oper:foperate, fa:C.cell, fb:C.cell, fc:C.cell}
244 :     | FOPERATEV of {oper:foperateV, fa:C.cell, fb:C.cell, fc:C.cell}
245 :     | FCMOVE of {oper:fcmove, fa:C.cell, fb:C.cell, fc:C.cell}
246 : monnier 409 | TRAPB
247 : leunga 744 | CALL_PAL of {code:osf_user_palcode, def:C.cellset, use:C.cellset}
248 : monnier 409 | ANNOTATION of {i:instruction, a:Annotations.annotation}
249 : leunga 624 | SOURCE of {}
250 :     | SINK of {}
251 :     | PHI of {}
252 : monnier 409 end
253 :    
254 : leunga 775 functor AlphaInstr(LabelExp : LABELEXP
255 : monnier 409 ) : ALPHAINSTR =
256 :     struct
257 :     structure C = AlphaCells
258 : george 545 structure LabelExp = LabelExp
259 : leunga 775 structure T = LabelExp.T
260 :     structure Region = T.Region
261 :     structure Constant = T.Constant
262 : monnier 409 datatype ea =
263 : leunga 744 Direct of C.cell
264 :     | FDirect of C.cell
265 :     | Displace of {base:C.cell, disp:int}
266 : monnier 409 datatype operand =
267 : leunga 744 REGop of C.cell
268 : monnier 409 | IMMop of int
269 : leunga 775 | HILABop of T.labexp
270 :     | LOLABop of T.labexp
271 :     | LABop of T.labexp
272 : monnier 409 datatype branch =
273 :     BR
274 :     | BLBC
275 :     | BEQ
276 :     | BLT
277 :     | BLE
278 :     | BLBS
279 :     | BNE
280 :     | BGE
281 :     | BGT
282 :     datatype fbranch =
283 :     FBEQ
284 :     | FBLT
285 :     | FBLE
286 :     | FBNE
287 :     | FBGE
288 :     | FBGT
289 :     datatype load =
290 : leunga 585 LDB
291 :     | LDW
292 :     | LDBU
293 : leunga 583 | LDWU
294 :     | LDL
295 : monnier 409 | LDL_L
296 :     | LDQ
297 :     | LDQ_L
298 :     | LDQ_U
299 :     datatype store =
300 : leunga 583 STB
301 :     | STW
302 :     | STL
303 : monnier 409 | STQ
304 :     | STQ_U
305 :     datatype fload =
306 :     LDF
307 :     | LDG
308 :     | LDS
309 :     | LDT
310 :     datatype fstore =
311 :     STF
312 :     | STG
313 :     | STS
314 :     | STT
315 :     datatype operate =
316 :     ADDL
317 :     | ADDQ
318 :     | CMPBGE
319 :     | CMPEQ
320 :     | CMPLE
321 :     | CMPLT
322 :     | CMPULE
323 :     | CMPULT
324 :     | SUBL
325 :     | SUBQ
326 :     | S4ADDL
327 :     | S4ADDQ
328 :     | S4SUBL
329 :     | S4SUBQ
330 :     | S8ADDL
331 :     | S8ADDQ
332 :     | S8SUBL
333 :     | S8SUBQ
334 :     | AND
335 :     | BIC
336 :     | BIS
337 :     | EQV
338 :     | ORNOT
339 :     | XOR
340 :     | EXTBL
341 :     | EXTLH
342 :     | EXTLL
343 :     | EXTQH
344 :     | EXTQL
345 :     | EXTWH
346 :     | EXTWL
347 :     | INSBL
348 :     | INSLH
349 :     | INSLL
350 :     | INSQH
351 :     | INSQL
352 :     | INSWH
353 :     | INSWL
354 :     | MSKBL
355 :     | MSKLH
356 :     | MSKLL
357 :     | MSKQH
358 :     | MSKQL
359 :     | MSKWH
360 :     | MSKWL
361 :     | SLL
362 :     | SRA
363 :     | SRL
364 :     | ZAP
365 :     | ZAPNOT
366 :     | MULL
367 :     | MULQ
368 :     | UMULH
369 :     datatype cmove =
370 :     CMOVEQ
371 :     | CMOVLBC
372 :     | CMOVLBS
373 :     | CMOVGE
374 :     | CMOVGT
375 :     | CMOVLE
376 :     | CMOVLT
377 :     | CMOVNE
378 :     datatype pseudo_op =
379 :     DIVL
380 :     | DIVLU
381 : monnier 429 | DIVQ
382 :     | DIVQU
383 :     | REML
384 :     | REMLU
385 :     | REMQ
386 :     | REMQU
387 : monnier 409 datatype operateV =
388 :     ADDLV
389 :     | ADDQV
390 :     | SUBLV
391 :     | SUBQV
392 :     | MULLV
393 :     | MULQV
394 :     datatype funary =
395 :     CVTLQ
396 :     | CVTQL
397 :     | CVTQLSV
398 :     | CVTQLV
399 :     | CVTQS
400 :     | CVTQSC
401 :     | CVTQT
402 :     | CVTQTC
403 :     | CVTTS
404 :     | CVTTSC
405 : monnier 429 | CVTST
406 :     | CVTSTS
407 : monnier 409 | CVTTQ
408 :     | CVTTQC
409 :     datatype foperate =
410 :     CPYS
411 :     | CPYSE
412 :     | CPYSN
413 :     | MF_FPCR
414 :     | MT_FPCR
415 :     | CMPTEQ
416 :     | CMPTLT
417 :     | CMPTLE
418 :     | CMPTUN
419 :     | CMPTEQSU
420 :     | CMPTLTSU
421 :     | CMPTLESU
422 :     | CMPTUNSU
423 : george 545 | ADDS
424 :     | ADDT
425 :     | DIVS
426 :     | DIVT
427 :     | MULS
428 :     | MULT
429 :     | SUBS
430 :     | SUBT
431 : monnier 409 datatype fcmove =
432 :     FCMOVEQ
433 : george 545 | FCMOVGE
434 :     | FCMOVGT
435 : monnier 409 | FCMOVLE
436 : george 545 | FCMOVLT
437 :     | FCMOVNE
438 : monnier 409 datatype foperateV =
439 :     ADDSSUD
440 :     | ADDSSU
441 :     | ADDTSUD
442 :     | ADDTSU
443 :     | DIVSSUD
444 :     | DIVSSU
445 :     | DIVTSUD
446 :     | DIVTSU
447 :     | MULSSUD
448 :     | MULSSU
449 :     | MULTSUD
450 :     | MULTSU
451 :     | SUBSSUD
452 :     | SUBSSU
453 :     | SUBTSUD
454 :     | SUBTSU
455 :     datatype osf_user_palcode =
456 :     BPT
457 :     | BUGCHK
458 :     | CALLSYS
459 :     | GENTRAP
460 :     | IMB
461 :     | RDUNIQUE
462 :     | WRUNIQUE
463 : george 545 type addressing_mode = (C.cell * operand)
464 : monnier 409 datatype instruction =
465 : leunga 744 DEFFREG of C.cell
466 :     | LDA of {r:C.cell, b:C.cell, d:operand}
467 :     | LDAH of {r:C.cell, b:C.cell, d:operand}
468 :     | LOAD of {ldOp:load, r:C.cell, b:C.cell, d:operand, mem:Region.region}
469 :     | STORE of {stOp:store, r:C.cell, b:C.cell, d:operand, mem:Region.region}
470 :     | FLOAD of {ldOp:fload, r:C.cell, b:C.cell, d:operand, mem:Region.region}
471 :     | FSTORE of {stOp:fstore, r:C.cell, b:C.cell, d:operand, mem:Region.region}
472 :     | JMPL of ({r:C.cell, b:C.cell, d:int} * Label.label list)
473 :     | JSR of {r:C.cell, b:C.cell, d:int, defs:C.cellset, uses:C.cellset, mem:Region.region}
474 :     | BSR of {r:C.cell, lab:Label.label, defs:C.cellset, uses:C.cellset, mem:Region.region}
475 :     | RET of {r:C.cell, b:C.cell, d:int}
476 :     | BRANCH of {b:branch, r:C.cell, lab:Label.label}
477 :     | FBRANCH of {b:fbranch, f:C.cell, lab:Label.label}
478 :     | OPERATE of {oper:operate, ra:C.cell, rb:operand, rc:C.cell}
479 :     | OPERATEV of {oper:operateV, ra:C.cell, rb:operand, rc:C.cell}
480 :     | CMOVE of {oper:cmove, ra:C.cell, rb:operand, rc:C.cell}
481 :     | PSEUDOARITH of {oper:pseudo_op, ra:C.cell, rb:operand, rc:C.cell, tmps:C.cellset}
482 :     | COPY of {dst:C.cell list, src:C.cell list, impl:instruction list option ref,
483 :     tmp:ea option}
484 :     | FCOPY of {dst:C.cell list, src:C.cell list, impl:instruction list option ref,
485 :     tmp:ea option}
486 :     | FUNARY of {oper:funary, fb:C.cell, fc:C.cell}
487 :     | FOPERATE of {oper:foperate, fa:C.cell, fb:C.cell, fc:C.cell}
488 :     | FOPERATEV of {oper:foperateV, fa:C.cell, fb:C.cell, fc:C.cell}
489 :     | FCMOVE of {oper:fcmove, fa:C.cell, fb:C.cell, fc:C.cell}
490 : monnier 409 | TRAPB
491 : leunga 744 | CALL_PAL of {code:osf_user_palcode, def:C.cellset, use:C.cellset}
492 : monnier 409 | ANNOTATION of {i:instruction, a:Annotations.annotation}
493 : leunga 624 | SOURCE of {}
494 :     | SINK of {}
495 :     | PHI of {}
496 : monnier 409 end
497 :    

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