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/compiler/CodeGen/ppc/ppcCG.sml
ViewVC logotype

Annotation of /sml/trunk/src/compiler/CodeGen/ppc/ppcCG.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1124 - (view) (download)

1 : monnier 429 (*
2 :     * PPC specific backend
3 :     *)
4 :     structure PPCCG =
5 :     MachineGen
6 :     ( structure MachSpec = PPCSpec
7 : george 1033 structure T = PPCMLTree
8 : george 1009 structure CB = CellsBasis
9 : george 984 structure ClientPseudoOps = PPCClientPseudoOps
10 : monnier 429 structure PseudoOps = PPCPseudoOps
11 : blume 773 structure Ext = SMLNJMLTreeExt(* generic extension *)
12 : monnier 429 structure CpsRegs = PPCCpsRegs
13 : monnier 475 structure InsnProps = PPCProps
14 : monnier 429 structure Asm = PPCAsmEmitter
15 : george 555 structure Shuffle = PPCShuffle
16 : monnier 247
17 : blume 773 structure CCalls = DummyCCallsFn (PPCMLTree)
18 :    
19 : george 823 structure OmitFramePtr = struct
20 :     exception NotImplemented
21 : george 909 structure CFG=PPCCFG
22 : george 823 structure I=PPCInstr
23 :     val vfp = PPCCpsRegs.vfp
24 :     fun omitframeptr _ = raise NotImplemented
25 :     end
26 :    
27 : monnier 429 structure MLTreeComp=
28 :     PPC(structure PPCInstr = PPCInstr
29 :     structure PPCMLTree = PPCMLTree
30 :     structure PseudoInstrs=
31 :     PPCPseudoInstr(structure Instr=PPCInstr)
32 : george 555 structure ExtensionComp = SMLNJMLTreeExtComp
33 :     (structure I = PPCInstr
34 :     structure T = PPCMLTree
35 : george 909 structure CFG = PPCCFG
36 : george 984 structure TS = PPCMLTreeStream
37 : george 555 )
38 : monnier 429 val bit64mode=false
39 :     val multCost=ref 6 (* an estimate *)
40 :     )
41 : monnier 247
42 : leunga 657 structure Jumps =
43 : monnier 429 PPCJumps(structure Instr=PPCInstr
44 : george 984 structure MLTreeEval=PPCMLTreeEval
45 : monnier 429 structure Shuffle=PPCShuffle)
46 : monnier 247
47 : monnier 429 structure BackPatch =
48 : george 909 BBSched2(structure CFG = PPCCFG
49 : leunga 657 structure Jumps = Jumps
50 : george 1124 structure Props = PPCProps
51 : monnier 429 structure Emitter = PPCMCEmitter)
52 : monnier 411
53 : monnier 429 structure RA =
54 : leunga 744 RISC_RA
55 : monnier 429 (structure I = PPCInstr
56 : george 1033 structure CFG = PPCCFG
57 : monnier 429 structure CpsRegs = PPCCpsRegs
58 :     structure InsnProps = InsnProps
59 :     structure Rewrite = PPCRewrite(PPCInstr)
60 : george 1033 structure SpillInstr= PPCSpillInstr(PPCInstr)
61 : monnier 429 structure Asm = PPCAsmEmitter
62 : leunga 744 structure SpillHeur = ChaitinSpillHeur
63 :     structure Spill = RASpill(structure InsnProps = InsnProps
64 :     structure Asm = PPCAsmEmitter)
65 : monnier 247
66 : leunga 744 structure SpillTable = SpillTable(PPCSpec)
67 :    
68 :     val architecture = PPCSpec.architecture
69 :    
70 : george 1033 datatype spillOperandKind = SPILL_LOC | CONST_VAL
71 :     type spill_info = unit
72 : leunga 744
73 : george 1033 fun beforeRA _ = SpillTable.spillInit()
74 :    
75 : monnier 429 val sp = I.C.stackptrR
76 : monnier 498 val spill = CPSRegions.spill
77 : monnier 247
78 : monnier 469 fun pure _ = false
79 :    
80 : leunga 744 structure Int =
81 :     struct
82 :     val avail = PPCCpsRegs.availR
83 :     val dedicated = PPCCpsRegs.dedicatedR
84 : monnier 247
85 : george 1033 fun mkDisp loc = T.LI(T.I.fromInt(32, SpillTable.getRegLoc loc))
86 : monnier 247
87 : george 1033 fun spillLoc{info, an, cell, id} =
88 :     {opnd=I.Displace{base=sp, disp=mkDisp(RAGraph.FRAME id), mem=spill},
89 :     kind=SPILL_LOC}
90 : monnier 247
91 : leunga 796 val mode = RACore.NO_OPTIMIZATION
92 : leunga 744 end
93 :     structure Float =
94 :     struct
95 :     val avail = PPCCpsRegs.availF
96 :     val dedicated = PPCCpsRegs.dedicatedF
97 :    
98 : george 1033 fun mkDisp loc = T.LI(T.I.fromInt(32, SpillTable.getFregLoc loc))
99 : george 1009
100 : george 1033 fun spillLoc(S, an, loc) =
101 :     I.Displace{base=sp, disp=mkDisp(RAGraph.FRAME loc), mem=spill}
102 : george 1009
103 : leunga 796 val mode = RACore.NO_OPTIMIZATION
104 : leunga 744 end
105 :     )
106 : monnier 429 )

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