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/hppa/instructions/hppaInstr.sml
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/hppa/instructions/hppaInstr.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 984 - (view) (download)

1 : monnier 411 (*
2 : leunga 744 * WARNING: This file was automatically generated by MDLGen (v3.0)
3 :     * from the machine description file "hppa/hppa.mdl".
4 :     * DO NOT EDIT this file directly
5 : monnier 245 *)
6 :    
7 : monnier 411
8 :     signature HPPAINSTR =
9 :     sig
10 :     structure C : HPPACELLS
11 : leunga 775 structure T : MLTREE
12 : monnier 411 structure Constant: CONSTANT
13 :     structure Region : REGION
14 : leunga 775 sharing Constant = T.Constant
15 :     sharing Region = T.Region
16 : monnier 411 datatype fmt =
17 :     SGL
18 :     | DBL
19 :     | QUAD
20 :     datatype loadi =
21 :     LDW
22 :     | LDH
23 :     | LDB
24 :     datatype store =
25 :     STW
26 :     | STH
27 :     | STB
28 :     datatype load =
29 :     LDWX
30 :     | LDWX_S
31 :     | LDWX_M
32 :     | LDWX_SM
33 :     | LDHX
34 :     | LDHX_S
35 :     | LDHX_M
36 :     | LDHX_SM
37 :     | LDBX
38 :     | LDBX_M
39 :     datatype cmp =
40 :     COMBT
41 :     | COMBF
42 :     datatype cmpi =
43 :     COMIBT
44 :     | COMIBF
45 :     datatype arith =
46 :     ADD
47 :     | ADDL
48 :     | ADDO
49 :     | SH1ADD
50 :     | SH1ADDL
51 :     | SH1ADDO
52 :     | SH2ADD
53 :     | SH2ADDL
54 :     | SH2ADDO
55 :     | SH3ADD
56 :     | SH3ADDL
57 :     | SH3ADDO
58 :     | SUB
59 :     | SUBO
60 :     | OR
61 :     | XOR
62 :     | AND
63 :     | ANDCM
64 :     datatype arithi =
65 :     ADDI
66 :     | ADDIO
67 :     | ADDIL
68 :     | SUBI
69 :     | SUBIO
70 :     datatype shiftv =
71 :     VEXTRU
72 :     | VEXTRS
73 :     | ZVDEP
74 :     datatype shift =
75 :     EXTRU
76 :     | EXTRS
77 :     | ZDEP
78 :     datatype farith =
79 :     FADD_S
80 :     | FADD_D
81 :     | FADD_Q
82 :     | FSUB_S
83 :     | FSUB_D
84 :     | FSUB_Q
85 :     | FMPY_S
86 :     | FMPY_D
87 :     | FMPY_Q
88 :     | FDIV_S
89 :     | FDIV_D
90 :     | FDIV_Q
91 :     | XMPYU
92 :     datatype funary =
93 :     FCPY_S
94 :     | FCPY_D
95 :     | FCPY_Q
96 :     | FABS_S
97 :     | FABS_D
98 :     | FABS_Q
99 :     | FSQRT_S
100 :     | FSQRT_D
101 :     | FSQRT_Q
102 :     | FRND_S
103 :     | FRND_D
104 :     | FRND_Q
105 :     datatype fcnv =
106 :     FCNVFF_SD
107 :     | FCNVFF_SQ
108 :     | FCNVFF_DS
109 :     | FCNVFF_DQ
110 :     | FCNVFF_QS
111 :     | FCNVFF_QD
112 :     | FCNVXF_S
113 :     | FCNVXF_D
114 :     | FCNVXF_Q
115 :     | FCNVFX_S
116 :     | FCNVFX_D
117 :     | FCNVFX_Q
118 :     | FCNVFXT_S
119 :     | FCNVFXT_D
120 :     | FCNVFXT_Q
121 :     datatype fstore =
122 :     FSTDS
123 :     | FSTWS
124 :     datatype fstorex =
125 :     FSTDX
126 :     | FSTDX_S
127 :     | FSTDX_M
128 :     | FSTDX_SM
129 :     | FSTWX
130 :     | FSTWX_S
131 :     | FSTWX_M
132 :     | FSTWX_SM
133 :     datatype floadx =
134 :     FLDDX
135 :     | FLDDX_S
136 :     | FLDDX_M
137 :     | FLDDX_SM
138 :     | FLDWX
139 :     | FLDWX_S
140 :     | FLDWX_M
141 :     | FLDWX_SM
142 :     datatype fload =
143 :     FLDDS
144 :     | FLDWS
145 :     datatype bcond =
146 :     EQ
147 :     | LT
148 :     | LE
149 :     | LTU
150 :     | LEU
151 :     | NE
152 :     | GE
153 :     | GT
154 :     | GTU
155 :     | GEU
156 :     datatype bitcond =
157 :     BSET
158 :     | BCLR
159 :     datatype fcond =
160 :     False_
161 :     | False
162 :     | ?
163 :     | !<=>
164 :     | ==
165 :     | EQT
166 :     | ?=
167 :     | !<>
168 :     | !?>=
169 :     | <
170 :     | ?<
171 :     | !>=
172 :     | !?>
173 :     | <=
174 :     | ?<=
175 :     | !>
176 :     | !?<=
177 :     | >
178 :     | ?>
179 :     | !<=
180 :     | !?<
181 :     | >=
182 :     | ?>=
183 :     | !<
184 :     | !?=
185 :     | <>
186 :     | !=
187 :     | NET
188 :     | !?
189 :     | <=>
190 :     | True_
191 :     | True
192 :     datatype scond =
193 :     ALL_ZERO
194 :     | LEFTMOST_ONE
195 :     | LEFTMOST_ZERO
196 :     | RIGHTMOST_ONE
197 :     | RIGHTMOST_ZERO
198 :     datatype field_selector =
199 :     F
200 :     | S
201 :     | D
202 :     | R
203 :     | T
204 :     | P
205 :     datatype ea =
206 : george 889 Direct of CellsBasis.cell
207 :     | FDirect of CellsBasis.cell
208 :     | Displace of {base:CellsBasis.cell, disp:int}
209 : monnier 411 datatype operand =
210 : george 889 REG of CellsBasis.cell
211 : george 545 | IMMED of int
212 : leunga 775 | LabExp of (T.labexp * field_selector)
213 :     | HILabExp of (T.labexp * field_selector)
214 :     | LOLabExp of (T.labexp * field_selector)
215 : george 545 datatype addressing_mode =
216 : george 889 DISPea of (CellsBasis.cell * operand)
217 :     | INDXea of (CellsBasis.cell * CellsBasis.cell)
218 :     | INDXSCALEDea of (CellsBasis.cell * CellsBasis.cell)
219 : monnier 411 datatype instruction =
220 : george 889 LOADI of {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell, mem:Region.region}
221 :     | LOAD of {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,
222 :     mem:Region.region}
223 :     | STORE of {st:store, b:CellsBasis.cell, d:operand, r:CellsBasis.cell, mem:Region.region}
224 :     | ARITH of {a:arith, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell}
225 :     | ARITHI of {ai:arithi, i:operand, r:CellsBasis.cell, t:CellsBasis.cell}
226 :     | COMCLR_LDO of {cc:bcond, r1:CellsBasis.cell, r2:CellsBasis.cell, t1:CellsBasis.cell,
227 :     i:int, b:CellsBasis.cell, t2:CellsBasis.cell}
228 :     | COMICLR_LDO of {cc:bcond, i1:operand, r2:CellsBasis.cell, t1:CellsBasis.cell,
229 :     i2:int, b:CellsBasis.cell, t2:CellsBasis.cell}
230 :     | SHIFTV of {sv:shiftv, r:CellsBasis.cell, len:int, t:CellsBasis.cell}
231 :     | SHIFT of {s:shift, r:CellsBasis.cell, p:int, len:int, t:CellsBasis.cell}
232 :     | BCOND of {cmp:cmp, bc:bcond, r1:CellsBasis.cell, r2:CellsBasis.cell, n:bool,
233 :     nop:bool, t:Label.label, f:Label.label}
234 :     | BCONDI of {cmpi:cmpi, bc:bcond, i:int, r2:CellsBasis.cell, n:bool, nop:bool,
235 :     t:Label.label, f:Label.label}
236 :     | BB of {bc:bitcond, r:CellsBasis.cell, p:int, n:bool, nop:bool, t:Label.label,
237 : leunga 744 f:Label.label}
238 : monnier 411 | B of {lab:Label.label, n:bool}
239 : george 889 | LONGJUMP of {lab:Label.label, n:bool, tmp:CellsBasis.cell, tmpLab:Label.label}
240 :     | BE of {b:CellsBasis.cell, d:operand, sr:int, n:bool, labs:Label.label list}
241 :     | BV of {x:CellsBasis.cell, b:CellsBasis.cell, labs:Label.label list, n:bool}
242 :     | BLR of {x:CellsBasis.cell, t:CellsBasis.cell, labs:Label.label list, n:bool}
243 :     | BL of {lab:Label.label, t:CellsBasis.cell, defs:C.cellset, uses:C.cellset,
244 :     cutsTo:Label.label list, mem:Region.region, n:bool}
245 :     | BLE of {d:operand, b:CellsBasis.cell, sr:int, t:CellsBasis.cell, defs:C.cellset,
246 :     uses:C.cellset, cutsTo:Label.label list, mem:Region.region}
247 :     | LDIL of {i:operand, t:CellsBasis.cell}
248 :     | LDO of {i:operand, b:CellsBasis.cell, t:CellsBasis.cell}
249 :     | MTCTL of {r:CellsBasis.cell, t:CellsBasis.cell}
250 :     | FSTORE of {fst:fstore, b:CellsBasis.cell, d:int, r:CellsBasis.cell, mem:Region.region}
251 :     | FSTOREX of {fstx:fstorex, b:CellsBasis.cell, x:CellsBasis.cell, r:CellsBasis.cell,
252 :     mem:Region.region}
253 :     | FLOAD of {fl:fload, b:CellsBasis.cell, d:int, t:CellsBasis.cell, mem:Region.region}
254 :     | FLOADX of {flx:floadx, b:CellsBasis.cell, x:CellsBasis.cell, t:CellsBasis.cell,
255 :     mem:Region.region}
256 :     | FARITH of {fa:farith, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell}
257 :     | FUNARY of {fu:funary, f:CellsBasis.cell, t:CellsBasis.cell}
258 :     | FCNV of {fcnv:fcnv, f:CellsBasis.cell, t:CellsBasis.cell}
259 :     | FBRANCH of {cc:fcond, fmt:fmt, f1:CellsBasis.cell, f2:CellsBasis.cell,
260 :     t:Label.label, f:Label.label, n:bool, long:bool}
261 : monnier 411 | BREAK of {code1:int, code2:int}
262 :     | NOP
263 : george 889 | COPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
264 : leunga 744 tmp:ea option}
265 : george 889 | FCOPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
266 : leunga 744 tmp:ea option}
267 : monnier 411 | ANNOTATION of {i:instruction, a:Annotations.annotation}
268 : leunga 624 | SOURCE of {}
269 :     | SINK of {}
270 :     | PHI of {}
271 : monnier 411 end
272 :    
273 : george 984 functor HppaInstr(T: MLTREE
274 : monnier 411 ) : HPPAINSTR =
275 : monnier 245 struct
276 : monnier 411 structure C = HppaCells
277 : george 984 structure T = T
278 : leunga 775 structure Region = T.Region
279 :     structure Constant = T.Constant
280 : monnier 411 datatype fmt =
281 :     SGL
282 :     | DBL
283 :     | QUAD
284 :     datatype loadi =
285 :     LDW
286 :     | LDH
287 :     | LDB
288 :     datatype store =
289 :     STW
290 :     | STH
291 :     | STB
292 :     datatype load =
293 :     LDWX
294 :     | LDWX_S
295 :     | LDWX_M
296 :     | LDWX_SM
297 :     | LDHX
298 :     | LDHX_S
299 :     | LDHX_M
300 :     | LDHX_SM
301 :     | LDBX
302 :     | LDBX_M
303 :     datatype cmp =
304 :     COMBT
305 :     | COMBF
306 :     datatype cmpi =
307 :     COMIBT
308 :     | COMIBF
309 :     datatype arith =
310 :     ADD
311 :     | ADDL
312 :     | ADDO
313 :     | SH1ADD
314 :     | SH1ADDL
315 :     | SH1ADDO
316 :     | SH2ADD
317 :     | SH2ADDL
318 :     | SH2ADDO
319 :     | SH3ADD
320 :     | SH3ADDL
321 :     | SH3ADDO
322 :     | SUB
323 :     | SUBO
324 :     | OR
325 :     | XOR
326 :     | AND
327 :     | ANDCM
328 :     datatype arithi =
329 :     ADDI
330 :     | ADDIO
331 :     | ADDIL
332 :     | SUBI
333 :     | SUBIO
334 :     datatype shiftv =
335 :     VEXTRU
336 :     | VEXTRS
337 :     | ZVDEP
338 :     datatype shift =
339 :     EXTRU
340 :     | EXTRS
341 :     | ZDEP
342 :     datatype farith =
343 :     FADD_S
344 :     | FADD_D
345 :     | FADD_Q
346 :     | FSUB_S
347 :     | FSUB_D
348 :     | FSUB_Q
349 :     | FMPY_S
350 :     | FMPY_D
351 :     | FMPY_Q
352 :     | FDIV_S
353 :     | FDIV_D
354 :     | FDIV_Q
355 :     | XMPYU
356 :     datatype funary =
357 :     FCPY_S
358 :     | FCPY_D
359 :     | FCPY_Q
360 :     | FABS_S
361 :     | FABS_D
362 :     | FABS_Q
363 :     | FSQRT_S
364 :     | FSQRT_D
365 :     | FSQRT_Q
366 :     | FRND_S
367 :     | FRND_D
368 :     | FRND_Q
369 :     datatype fcnv =
370 :     FCNVFF_SD
371 :     | FCNVFF_SQ
372 :     | FCNVFF_DS
373 :     | FCNVFF_DQ
374 :     | FCNVFF_QS
375 :     | FCNVFF_QD
376 :     | FCNVXF_S
377 :     | FCNVXF_D
378 :     | FCNVXF_Q
379 :     | FCNVFX_S
380 :     | FCNVFX_D
381 :     | FCNVFX_Q
382 :     | FCNVFXT_S
383 :     | FCNVFXT_D
384 :     | FCNVFXT_Q
385 :     datatype fstore =
386 :     FSTDS
387 :     | FSTWS
388 :     datatype fstorex =
389 :     FSTDX
390 :     | FSTDX_S
391 :     | FSTDX_M
392 :     | FSTDX_SM
393 :     | FSTWX
394 :     | FSTWX_S
395 :     | FSTWX_M
396 :     | FSTWX_SM
397 :     datatype floadx =
398 :     FLDDX
399 :     | FLDDX_S
400 :     | FLDDX_M
401 :     | FLDDX_SM
402 :     | FLDWX
403 :     | FLDWX_S
404 :     | FLDWX_M
405 :     | FLDWX_SM
406 :     datatype fload =
407 :     FLDDS
408 :     | FLDWS
409 :     datatype bcond =
410 :     EQ
411 :     | LT
412 :     | LE
413 :     | LTU
414 :     | LEU
415 :     | NE
416 :     | GE
417 :     | GT
418 :     | GTU
419 :     | GEU
420 :     datatype bitcond =
421 :     BSET
422 :     | BCLR
423 :     datatype fcond =
424 :     False_
425 :     | False
426 :     | ?
427 :     | !<=>
428 :     | ==
429 :     | EQT
430 :     | ?=
431 :     | !<>
432 :     | !?>=
433 :     | <
434 :     | ?<
435 :     | !>=
436 :     | !?>
437 :     | <=
438 :     | ?<=
439 :     | !>
440 :     | !?<=
441 :     | >
442 :     | ?>
443 :     | !<=
444 :     | !?<
445 :     | >=
446 :     | ?>=
447 :     | !<
448 :     | !?=
449 :     | <>
450 :     | !=
451 :     | NET
452 :     | !?
453 :     | <=>
454 :     | True_
455 :     | True
456 :     datatype scond =
457 :     ALL_ZERO
458 :     | LEFTMOST_ONE
459 :     | LEFTMOST_ZERO
460 :     | RIGHTMOST_ONE
461 :     | RIGHTMOST_ZERO
462 :     datatype field_selector =
463 :     F
464 :     | S
465 :     | D
466 :     | R
467 :     | T
468 :     | P
469 :     datatype ea =
470 : george 889 Direct of CellsBasis.cell
471 :     | FDirect of CellsBasis.cell
472 :     | Displace of {base:CellsBasis.cell, disp:int}
473 : monnier 411 datatype operand =
474 : george 889 REG of CellsBasis.cell
475 : george 545 | IMMED of int
476 : leunga 775 | LabExp of (T.labexp * field_selector)
477 :     | HILabExp of (T.labexp * field_selector)
478 :     | LOLabExp of (T.labexp * field_selector)
479 : george 545 datatype addressing_mode =
480 : george 889 DISPea of (CellsBasis.cell * operand)
481 :     | INDXea of (CellsBasis.cell * CellsBasis.cell)
482 :     | INDXSCALEDea of (CellsBasis.cell * CellsBasis.cell)
483 : monnier 411 datatype instruction =
484 : george 889 LOADI of {li:loadi, r:CellsBasis.cell, i:operand, t:CellsBasis.cell, mem:Region.region}
485 :     | LOAD of {l:load, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell,
486 :     mem:Region.region}
487 :     | STORE of {st:store, b:CellsBasis.cell, d:operand, r:CellsBasis.cell, mem:Region.region}
488 :     | ARITH of {a:arith, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell}
489 :     | ARITHI of {ai:arithi, i:operand, r:CellsBasis.cell, t:CellsBasis.cell}
490 :     | COMCLR_LDO of {cc:bcond, r1:CellsBasis.cell, r2:CellsBasis.cell, t1:CellsBasis.cell,
491 :     i:int, b:CellsBasis.cell, t2:CellsBasis.cell}
492 :     | COMICLR_LDO of {cc:bcond, i1:operand, r2:CellsBasis.cell, t1:CellsBasis.cell,
493 :     i2:int, b:CellsBasis.cell, t2:CellsBasis.cell}
494 :     | SHIFTV of {sv:shiftv, r:CellsBasis.cell, len:int, t:CellsBasis.cell}
495 :     | SHIFT of {s:shift, r:CellsBasis.cell, p:int, len:int, t:CellsBasis.cell}
496 :     | BCOND of {cmp:cmp, bc:bcond, r1:CellsBasis.cell, r2:CellsBasis.cell, n:bool,
497 :     nop:bool, t:Label.label, f:Label.label}
498 :     | BCONDI of {cmpi:cmpi, bc:bcond, i:int, r2:CellsBasis.cell, n:bool, nop:bool,
499 :     t:Label.label, f:Label.label}
500 :     | BB of {bc:bitcond, r:CellsBasis.cell, p:int, n:bool, nop:bool, t:Label.label,
501 : leunga 744 f:Label.label}
502 : monnier 411 | B of {lab:Label.label, n:bool}
503 : george 889 | LONGJUMP of {lab:Label.label, n:bool, tmp:CellsBasis.cell, tmpLab:Label.label}
504 :     | BE of {b:CellsBasis.cell, d:operand, sr:int, n:bool, labs:Label.label list}
505 :     | BV of {x:CellsBasis.cell, b:CellsBasis.cell, labs:Label.label list, n:bool}
506 :     | BLR of {x:CellsBasis.cell, t:CellsBasis.cell, labs:Label.label list, n:bool}
507 :     | BL of {lab:Label.label, t:CellsBasis.cell, defs:C.cellset, uses:C.cellset,
508 :     cutsTo:Label.label list, mem:Region.region, n:bool}
509 :     | BLE of {d:operand, b:CellsBasis.cell, sr:int, t:CellsBasis.cell, defs:C.cellset,
510 :     uses:C.cellset, cutsTo:Label.label list, mem:Region.region}
511 :     | LDIL of {i:operand, t:CellsBasis.cell}
512 :     | LDO of {i:operand, b:CellsBasis.cell, t:CellsBasis.cell}
513 :     | MTCTL of {r:CellsBasis.cell, t:CellsBasis.cell}
514 :     | FSTORE of {fst:fstore, b:CellsBasis.cell, d:int, r:CellsBasis.cell, mem:Region.region}
515 :     | FSTOREX of {fstx:fstorex, b:CellsBasis.cell, x:CellsBasis.cell, r:CellsBasis.cell,
516 :     mem:Region.region}
517 :     | FLOAD of {fl:fload, b:CellsBasis.cell, d:int, t:CellsBasis.cell, mem:Region.region}
518 :     | FLOADX of {flx:floadx, b:CellsBasis.cell, x:CellsBasis.cell, t:CellsBasis.cell,
519 :     mem:Region.region}
520 :     | FARITH of {fa:farith, r1:CellsBasis.cell, r2:CellsBasis.cell, t:CellsBasis.cell}
521 :     | FUNARY of {fu:funary, f:CellsBasis.cell, t:CellsBasis.cell}
522 :     | FCNV of {fcnv:fcnv, f:CellsBasis.cell, t:CellsBasis.cell}
523 :     | FBRANCH of {cc:fcond, fmt:fmt, f1:CellsBasis.cell, f2:CellsBasis.cell,
524 :     t:Label.label, f:Label.label, n:bool, long:bool}
525 : monnier 411 | BREAK of {code1:int, code2:int}
526 :     | NOP
527 : george 889 | COPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
528 : leunga 744 tmp:ea option}
529 : george 889 | FCOPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
530 : leunga 744 tmp:ea option}
531 : monnier 411 | ANNOTATION of {i:instruction, a:Annotations.annotation}
532 : leunga 624 | SOURCE of {}
533 :     | SINK of {}
534 :     | PHI of {}
535 : monnier 245 end
536 :    

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