Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/CodeGen/ppc/ppcCG.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 773, Mon Jan 8 16:18:37 2001 UTC revision 984, Wed Nov 21 19:00:08 2001 UTC
# Line 4  Line 4 
4  structure PPCCG =  structure PPCCG =
5    MachineGen    MachineGen
6    ( structure MachSpec   = PPCSpec    ( structure MachSpec   = PPCSpec
7        structure ClientPseudoOps = PPCClientPseudoOps
8      structure PseudoOps  = PPCPseudoOps      structure PseudoOps  = PPCPseudoOps
9      structure Ext        = SMLNJMLTreeExt(* generic extension *)      structure Ext        = SMLNJMLTreeExt(* generic extension *)
10      structure CpsRegs    = PPCCpsRegs      structure CpsRegs    = PPCCpsRegs
# Line 13  Line 14 
14    
15      structure CCalls     = DummyCCallsFn (PPCMLTree)      structure CCalls     = DummyCCallsFn (PPCMLTree)
16    
17        structure OmitFramePtr = struct
18          exception NotImplemented
19          structure CFG=PPCCFG
20          structure I=PPCInstr
21          val vfp = PPCCpsRegs.vfp
22          fun omitframeptr _ = raise NotImplemented
23        end
24    
25      structure MLTreeComp=      structure MLTreeComp=
26         PPC(structure PPCInstr = PPCInstr         PPC(structure PPCInstr = PPCInstr
27             structure PPCMLTree = PPCMLTree             structure PPCMLTree = PPCMLTree
# Line 21  Line 30 
30             structure ExtensionComp = SMLNJMLTreeExtComp             structure ExtensionComp = SMLNJMLTreeExtComp
31                 (structure I = PPCInstr                 (structure I = PPCInstr
32                  structure T = PPCMLTree                  structure T = PPCMLTree
33                    structure CFG = PPCCFG
34                    structure TS = PPCMLTreeStream
35                 )                 )
36             val bit64mode=false             val bit64mode=false
37             val multCost=ref 6 (* an estimate *)             val multCost=ref 6 (* an estimate *)
# Line 28  Line 39 
39    
40      structure Jumps =      structure Jumps =
41         PPCJumps(structure Instr=PPCInstr         PPCJumps(structure Instr=PPCInstr
42                    structure MLTreeEval=PPCMLTreeEval
43                  structure Shuffle=PPCShuffle)                  structure Shuffle=PPCShuffle)
44    
45      structure BackPatch =      structure BackPatch =
46         BBSched2(structure Flowgraph = PPCFlowGraph         BBSched2(structure CFG = PPCCFG
47                    structure Placement = DefaultBlockPlacement(PPCCFG)
48                  structure Jumps = Jumps                  structure Jumps = Jumps
49                  structure Emitter = PPCMCEmitter)                  structure Emitter = PPCMCEmitter)
50    
51      structure RA =      structure RA =
52         RISC_RA         RISC_RA
53           (structure I         = PPCInstr           (structure I         = PPCInstr
54            structure Flowgraph = PPCFlowGraph            structure Flowgraph = PPCCFG
55            structure CpsRegs   = PPCCpsRegs            structure CpsRegs   = PPCCpsRegs
56            structure InsnProps = InsnProps            structure InsnProps = InsnProps
57            structure Rewrite   = PPCRewrite(PPCInstr)            structure Rewrite   = PPCRewrite(PPCInstr)
# Line 77  Line 90 
90                                      disp=I.ImmedOp(SpillTable.getRegLoc loc)})}                                      disp=I.ImmedOp(SpillTable.getRegLoc loc)})}
91    
92                (* spill register *)                (* spill register *)
93               fun spillInstr(_, rs,loc) =               fun spillInstr{src,spilledCell,spillLoc,an} =
94                   [I.ST{st=I.STW, ra=sp, d=I.ImmedOp(SpillTable.getRegLoc loc),                   [I.ST{st=I.STW, ra=sp,
95                         rs=rs, mem=spill}]                         d=I.ImmedOp(SpillTable.getRegLoc spillLoc),
96                           rs=src, mem=spill}]
97               (* reload register *)               (* reload register *)
98               fun reloadInstr(_, rt,loc) =               fun reloadInstr{dst,spilledCell,spillLoc,an} =
99                   [I.L{ld=I.LWZ, ra=sp, d=I.ImmedOp(SpillTable.getRegLoc loc),                   [I.L{ld=I.LWZ, ra=sp,
100                       rt=rt, mem=spill}]                        d=I.ImmedOp(SpillTable.getRegLoc spillLoc),
101                          rt=dst, mem=spill}]
102    
103                 val mode = RACore.NO_OPTIMIZATION
104           end           end
105           structure Float =           structure Float =
106           struct           struct
# Line 111  Line 127 
127               fun reloadInstr(_, ft,loc) =               fun reloadInstr(_, ft,loc) =
128                   [I.LF{ld=I.LFD, ra=sp, d=I.ImmedOp(SpillTable.getFregLoc loc),                   [I.LF{ld=I.LFD, ra=sp, d=I.ImmedOp(SpillTable.getFregLoc loc),
129                         ft=ft, mem=spill}]                         ft=ft, mem=spill}]
130    
131                 val mode = RACore.NO_OPTIMIZATION
132           end           end
133          )          )
134    )    )

Legend:
Removed from v.773  
changed lines
  Added in v.984

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