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

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