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/ppc/instructions/ppcInstr.sml
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/ppc/instructions/ppcInstr.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 889 - (view) (download)

1 : monnier 411 (*
2 : leunga 744 * WARNING: This file was automatically generated by MDLGen (v3.0)
3 : leunga 815 * from the machine description file "ppc/ppc.mdl".
4 : leunga 744 * DO NOT EDIT this file directly
5 : monnier 411 *)
6 : monnier 247
7 :    
8 : monnier 411 signature PPCINSTR =
9 :     sig
10 :     structure C : PPCCELLS
11 : leunga 775 structure T : MLTREE
12 :     structure LabelExp : LABELEXP
13 : monnier 411 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 411 type gpr = int
19 :     type fpr = int
20 :     type ccr = int
21 :     type crf = int
22 :     datatype spr =
23 :     XER
24 :     | LR
25 :     | CTR
26 :     datatype operand =
27 : george 889 RegOp of CellsBasis.cell
28 : monnier 411 | ImmedOp of int
29 : leunga 775 | LabelOp of T.labexp
30 : george 889 type addressing_mode = (CellsBasis.cell * operand)
31 : monnier 411 datatype ea =
32 : george 889 Direct of CellsBasis.cell
33 :     | FDirect of CellsBasis.cell
34 :     | Displace of {base:CellsBasis.cell, disp:operand}
35 : monnier 411 datatype load =
36 :     LBZ
37 :     | LBZE
38 :     | LHZ
39 :     | LHZE
40 :     | LHA
41 :     | LHAE
42 :     | LWZ
43 :     | LWZE
44 :     | LDE
45 :     datatype store =
46 :     STB
47 :     | STBE
48 :     | STH
49 :     | STHE
50 :     | STW
51 :     | STWE
52 :     | STDE
53 :     datatype fload =
54 :     LFS
55 :     | LFSE
56 :     | LFD
57 :     | LFDE
58 :     datatype fstore =
59 :     STFS
60 :     | STFSE
61 :     | STFD
62 :     | STFDE
63 :     datatype cmp =
64 :     CMP
65 :     | CMPL
66 :     datatype fcmp =
67 :     FCMPO
68 :     | FCMPU
69 :     datatype unary =
70 :     NEG
71 :     | EXTSB
72 :     | EXTSH
73 :     | EXTSW
74 :     | CNTLZW
75 :     | CNTLZD
76 :     datatype funary =
77 :     FMR
78 :     | FNEG
79 :     | FABS
80 :     | FNABS
81 :     | FSQRT
82 :     | FSQRTS
83 :     | FRSP
84 :     | FCTIW
85 :     | FCTIWZ
86 :     | FCTID
87 :     | FCTIDZ
88 :     | FCFID
89 :     datatype farith =
90 :     FADD
91 :     | FSUB
92 :     | FMUL
93 :     | FDIV
94 :     | FADDS
95 :     | FSUBS
96 :     | FMULS
97 :     | FDIVS
98 :     datatype farith3 =
99 :     FMADD
100 :     | FMADDS
101 :     | FMSUB
102 :     | FMSUBS
103 :     | FNMADD
104 :     | FNMADDS
105 :     | FNMSUB
106 :     | FNMSUBS
107 :     | FSEL
108 :     datatype bo =
109 :     TRUE
110 :     | FALSE
111 :     | ALWAYS
112 :     | COUNTER of {eqZero:bool, cond:bool option}
113 :     datatype arith =
114 :     ADD
115 :     | SUBF
116 :     | MULLW
117 :     | MULLD
118 :     | MULHW
119 :     | MULHWU
120 :     | DIVW
121 :     | DIVD
122 :     | DIVWU
123 :     | DIVDU
124 :     | AND
125 :     | OR
126 :     | XOR
127 :     | NAND
128 :     | NOR
129 :     | EQV
130 :     | ANDC
131 :     | ORC
132 :     | SLW
133 :     | SLD
134 :     | SRW
135 :     | SRD
136 :     | SRAW
137 :     | SRAD
138 :     datatype arithi =
139 :     ADDI
140 :     | ADDIS
141 :     | SUBFIC
142 :     | MULLI
143 :     | ANDI_Rc
144 :     | ANDIS_Rc
145 :     | ORI
146 :     | ORIS
147 :     | XORI
148 :     | XORIS
149 :     | SRAWI
150 :     | SRADI
151 :     datatype rotate =
152 :     RLWNM
153 :     | RLDCL
154 :     | RLDCR
155 :     datatype rotatei =
156 :     RLWINM
157 :     | RLWIMI
158 :     | RLDICL
159 :     | RLDICR
160 :     | RLDIC
161 :     | RLDIMI
162 :     datatype ccarith =
163 :     CRAND
164 :     | CROR
165 :     | CRXOR
166 :     | CRNAND
167 :     | CRNOR
168 :     | CREQV
169 :     | CRANDC
170 :     | CRORC
171 :     datatype bit =
172 :     LT
173 :     | GT
174 :     | EQ
175 :     | SO
176 :     | FL
177 :     | FG
178 :     | FE
179 :     | FU
180 :     | FX
181 :     | FEX
182 :     | VX
183 :     | OX
184 :     datatype xerbit =
185 :     SO64
186 :     | OV64
187 :     | CA64
188 :     | SO32
189 :     | OV32
190 :     | CA32
191 : george 889 type cr_bit = (CellsBasis.cell * bit)
192 : monnier 411 datatype instruction =
193 : george 889 L of {ld:load, rt:CellsBasis.cell, ra:CellsBasis.cell, d:operand, mem:Region.region}
194 :     | LF of {ld:fload, ft:CellsBasis.cell, ra:CellsBasis.cell, d:operand, mem:Region.region}
195 :     | ST of {st:store, rs:CellsBasis.cell, ra:CellsBasis.cell, d:operand, mem:Region.region}
196 :     | STF of {st:fstore, fs:CellsBasis.cell, ra:CellsBasis.cell, d:operand,
197 :     mem:Region.region}
198 :     | UNARY of {oper:unary, rt:CellsBasis.cell, ra:CellsBasis.cell, Rc:bool,
199 :     OE:bool}
200 :     | ARITH of {oper:arith, rt:CellsBasis.cell, ra:CellsBasis.cell, rb:CellsBasis.cell,
201 :     Rc:bool, OE:bool}
202 :     | ARITHI of {oper:arithi, rt:CellsBasis.cell, ra:CellsBasis.cell, im:operand}
203 :     | ROTATE of {oper:rotate, ra:CellsBasis.cell, rs:CellsBasis.cell, sh:CellsBasis.cell,
204 :     mb:int, me:int option}
205 :     | ROTATEI of {oper:rotatei, ra:CellsBasis.cell, rs:CellsBasis.cell, sh:operand,
206 :     mb:int, me:int option}
207 :     | COMPARE of {cmp:cmp, l:bool, bf:CellsBasis.cell, ra:CellsBasis.cell, rb:operand}
208 :     | FCOMPARE of {cmp:fcmp, bf:CellsBasis.cell, fa:CellsBasis.cell, fb:CellsBasis.cell}
209 :     | FUNARY of {oper:funary, ft:CellsBasis.cell, fb:CellsBasis.cell, Rc:bool}
210 :     | FARITH of {oper:farith, ft:CellsBasis.cell, fa:CellsBasis.cell, fb:CellsBasis.cell,
211 : leunga 744 Rc:bool}
212 : george 889 | FARITH3 of {oper:farith3, ft:CellsBasis.cell, fa:CellsBasis.cell, fb:CellsBasis.cell,
213 :     fc:CellsBasis.cell, Rc:bool}
214 : monnier 411 | CCARITH of {oper:ccarith, bt:cr_bit, ba:cr_bit, bb:cr_bit}
215 : george 889 | MCRF of {bf:CellsBasis.cell, bfa:CellsBasis.cell}
216 :     | MTSPR of {rs:CellsBasis.cell, spr:CellsBasis.cell}
217 :     | MFSPR of {rt:CellsBasis.cell, spr:CellsBasis.cell}
218 :     | TW of {to:int, ra:CellsBasis.cell, si:operand}
219 :     | TD of {to:int, ra:CellsBasis.cell, si:operand}
220 :     | BC of {bo:bo, bf:CellsBasis.cell, bit:bit, addr:operand, LK:bool, fall:operand}
221 :     | BCLR of {bo:bo, bf:CellsBasis.cell, bit:bit, LK:bool, labels:Label.label list}
222 : monnier 411 | B of {addr:operand, LK:bool}
223 : leunga 796 | CALL of {def:C.cellset, use:C.cellset, cutsTo:Label.label list, mem:Region.region}
224 : george 889 | COPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
225 : leunga 744 tmp:ea option}
226 : george 889 | FCOPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
227 : leunga 744 tmp:ea option}
228 : monnier 411 | ANNOTATION of {i:instruction, a:Annotations.annotation}
229 : leunga 624 | SOURCE of {}
230 :     | SINK of {}
231 :     | PHI of {}
232 : monnier 411 end
233 : monnier 247
234 : leunga 775 functor PPCInstr(LabelExp : LABELEXP
235 : monnier 411 ) : PPCINSTR =
236 :     struct
237 :     structure C = PPCCells
238 : george 545 structure LabelExp = LabelExp
239 : leunga 775 structure T = LabelExp.T
240 :     structure Region = T.Region
241 :     structure Constant = T.Constant
242 : monnier 411 type gpr = int
243 :     type fpr = int
244 :     type ccr = int
245 :     type crf = int
246 :     datatype spr =
247 :     XER
248 :     | LR
249 :     | CTR
250 :     datatype operand =
251 : george 889 RegOp of CellsBasis.cell
252 : monnier 411 | ImmedOp of int
253 : leunga 775 | LabelOp of T.labexp
254 : george 889 type addressing_mode = (CellsBasis.cell * operand)
255 : monnier 411 datatype ea =
256 : george 889 Direct of CellsBasis.cell
257 :     | FDirect of CellsBasis.cell
258 :     | Displace of {base:CellsBasis.cell, disp:operand}
259 : monnier 411 datatype load =
260 :     LBZ
261 :     | LBZE
262 :     | LHZ
263 :     | LHZE
264 :     | LHA
265 :     | LHAE
266 :     | LWZ
267 :     | LWZE
268 :     | LDE
269 :     datatype store =
270 :     STB
271 :     | STBE
272 :     | STH
273 :     | STHE
274 :     | STW
275 :     | STWE
276 :     | STDE
277 :     datatype fload =
278 :     LFS
279 :     | LFSE
280 :     | LFD
281 :     | LFDE
282 :     datatype fstore =
283 :     STFS
284 :     | STFSE
285 :     | STFD
286 :     | STFDE
287 :     datatype cmp =
288 :     CMP
289 :     | CMPL
290 :     datatype fcmp =
291 :     FCMPO
292 :     | FCMPU
293 :     datatype unary =
294 :     NEG
295 :     | EXTSB
296 :     | EXTSH
297 :     | EXTSW
298 :     | CNTLZW
299 :     | CNTLZD
300 :     datatype funary =
301 :     FMR
302 :     | FNEG
303 :     | FABS
304 :     | FNABS
305 :     | FSQRT
306 :     | FSQRTS
307 :     | FRSP
308 :     | FCTIW
309 :     | FCTIWZ
310 :     | FCTID
311 :     | FCTIDZ
312 :     | FCFID
313 :     datatype farith =
314 :     FADD
315 :     | FSUB
316 :     | FMUL
317 :     | FDIV
318 :     | FADDS
319 :     | FSUBS
320 :     | FMULS
321 :     | FDIVS
322 :     datatype farith3 =
323 :     FMADD
324 :     | FMADDS
325 :     | FMSUB
326 :     | FMSUBS
327 :     | FNMADD
328 :     | FNMADDS
329 :     | FNMSUB
330 :     | FNMSUBS
331 :     | FSEL
332 :     datatype bo =
333 :     TRUE
334 :     | FALSE
335 :     | ALWAYS
336 :     | COUNTER of {eqZero:bool, cond:bool option}
337 :     datatype arith =
338 :     ADD
339 :     | SUBF
340 :     | MULLW
341 :     | MULLD
342 :     | MULHW
343 :     | MULHWU
344 :     | DIVW
345 :     | DIVD
346 :     | DIVWU
347 :     | DIVDU
348 :     | AND
349 :     | OR
350 :     | XOR
351 :     | NAND
352 :     | NOR
353 :     | EQV
354 :     | ANDC
355 :     | ORC
356 :     | SLW
357 :     | SLD
358 :     | SRW
359 :     | SRD
360 :     | SRAW
361 :     | SRAD
362 :     datatype arithi =
363 :     ADDI
364 :     | ADDIS
365 :     | SUBFIC
366 :     | MULLI
367 :     | ANDI_Rc
368 :     | ANDIS_Rc
369 :     | ORI
370 :     | ORIS
371 :     | XORI
372 :     | XORIS
373 :     | SRAWI
374 :     | SRADI
375 :     datatype rotate =
376 :     RLWNM
377 :     | RLDCL
378 :     | RLDCR
379 :     datatype rotatei =
380 :     RLWINM
381 :     | RLWIMI
382 :     | RLDICL
383 :     | RLDICR
384 :     | RLDIC
385 :     | RLDIMI
386 :     datatype ccarith =
387 :     CRAND
388 :     | CROR
389 :     | CRXOR
390 :     | CRNAND
391 :     | CRNOR
392 :     | CREQV
393 :     | CRANDC
394 :     | CRORC
395 :     datatype bit =
396 :     LT
397 :     | GT
398 :     | EQ
399 :     | SO
400 :     | FL
401 :     | FG
402 :     | FE
403 :     | FU
404 :     | FX
405 :     | FEX
406 :     | VX
407 :     | OX
408 :     datatype xerbit =
409 :     SO64
410 :     | OV64
411 :     | CA64
412 :     | SO32
413 :     | OV32
414 :     | CA32
415 : george 889 type cr_bit = (CellsBasis.cell * bit)
416 : monnier 411 datatype instruction =
417 : george 889 L of {ld:load, rt:CellsBasis.cell, ra:CellsBasis.cell, d:operand, mem:Region.region}
418 :     | LF of {ld:fload, ft:CellsBasis.cell, ra:CellsBasis.cell, d:operand, mem:Region.region}
419 :     | ST of {st:store, rs:CellsBasis.cell, ra:CellsBasis.cell, d:operand, mem:Region.region}
420 :     | STF of {st:fstore, fs:CellsBasis.cell, ra:CellsBasis.cell, d:operand,
421 :     mem:Region.region}
422 :     | UNARY of {oper:unary, rt:CellsBasis.cell, ra:CellsBasis.cell, Rc:bool,
423 :     OE:bool}
424 :     | ARITH of {oper:arith, rt:CellsBasis.cell, ra:CellsBasis.cell, rb:CellsBasis.cell,
425 :     Rc:bool, OE:bool}
426 :     | ARITHI of {oper:arithi, rt:CellsBasis.cell, ra:CellsBasis.cell, im:operand}
427 :     | ROTATE of {oper:rotate, ra:CellsBasis.cell, rs:CellsBasis.cell, sh:CellsBasis.cell,
428 :     mb:int, me:int option}
429 :     | ROTATEI of {oper:rotatei, ra:CellsBasis.cell, rs:CellsBasis.cell, sh:operand,
430 :     mb:int, me:int option}
431 :     | COMPARE of {cmp:cmp, l:bool, bf:CellsBasis.cell, ra:CellsBasis.cell, rb:operand}
432 :     | FCOMPARE of {cmp:fcmp, bf:CellsBasis.cell, fa:CellsBasis.cell, fb:CellsBasis.cell}
433 :     | FUNARY of {oper:funary, ft:CellsBasis.cell, fb:CellsBasis.cell, Rc:bool}
434 :     | FARITH of {oper:farith, ft:CellsBasis.cell, fa:CellsBasis.cell, fb:CellsBasis.cell,
435 : leunga 744 Rc:bool}
436 : george 889 | FARITH3 of {oper:farith3, ft:CellsBasis.cell, fa:CellsBasis.cell, fb:CellsBasis.cell,
437 :     fc:CellsBasis.cell, Rc:bool}
438 : monnier 411 | CCARITH of {oper:ccarith, bt:cr_bit, ba:cr_bit, bb:cr_bit}
439 : george 889 | MCRF of {bf:CellsBasis.cell, bfa:CellsBasis.cell}
440 :     | MTSPR of {rs:CellsBasis.cell, spr:CellsBasis.cell}
441 :     | MFSPR of {rt:CellsBasis.cell, spr:CellsBasis.cell}
442 :     | TW of {to:int, ra:CellsBasis.cell, si:operand}
443 :     | TD of {to:int, ra:CellsBasis.cell, si:operand}
444 :     | BC of {bo:bo, bf:CellsBasis.cell, bit:bit, addr:operand, LK:bool, fall:operand}
445 :     | BCLR of {bo:bo, bf:CellsBasis.cell, bit:bit, LK:bool, labels:Label.label list}
446 : monnier 411 | B of {addr:operand, LK:bool}
447 : leunga 796 | CALL of {def:C.cellset, use:C.cellset, cutsTo:Label.label list, mem:Region.region}
448 : george 889 | COPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
449 : leunga 744 tmp:ea option}
450 : george 889 | FCOPY of {dst:CellsBasis.cell list, src:CellsBasis.cell list, impl:instruction list option ref,
451 : leunga 744 tmp:ea option}
452 : monnier 411 | ANNOTATION of {i:instruction, a:Annotations.annotation}
453 : leunga 624 | SOURCE of {}
454 :     | SINK of {}
455 :     | PHI of {}
456 : monnier 411 end
457 : monnier 247

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