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

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