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

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