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/alpha32/alpha32CG.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/CodeGen/alpha32/alpha32CG.sml

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

sml/branches/SMLNJ/src/compiler/CodeGen/alpha32/alpha32CG.sml revision 469, Wed Nov 10 22:42:52 1999 UTC sml/trunk/src/compiler/CodeGen/alpha32/alpha32CG.sml revision 583, Thu Mar 23 21:52:30 2000 UTC
# Line 7  Line 7 
7      structure MachSpec   = Alpha32Spec      structure MachSpec   = Alpha32Spec
8      structure PseudoOps  = Alpha32PseudoOps      structure PseudoOps  = Alpha32PseudoOps
9      structure CpsRegs    = Alpha32CpsRegs      structure CpsRegs    = Alpha32CpsRegs
10      structure InsnProps  = AlphaProps(Alpha32Instr)      structure InsnProps  = Alpha32Props
11      structure Asm        = Alpha32AsmEmitter      structure Asm        = Alpha32AsmEmitter
12        structure Shuffle    = Alpha32Shuffle
13    
14      structure MLTreeComp=      structure MLTreeComp=
15         Alpha(structure AlphaInstr = Alpha32Instr         Alpha(structure AlphaInstr = Alpha32Instr
16               structure AlphaMLTree = Alpha32MLTree               structure AlphaMLTree = Alpha32MLTree
17               structure PseudoInstrs = Alpha32PseudoInstrs               structure PseudoInstrs = Alpha32PseudoInstrs
18                 structure ExtensionComp = SMLNJMLTreeExtComp
19                   (structure I = Alpha32Instr
20                    structure T = Alpha32MLTree
21                   )
22               val mode32bit = true (* simulate 32 bit mode *)               val mode32bit = true (* simulate 32 bit mode *)
23               val multCost = ref 8 (* just guessing *)               val multCost = ref 8 (* just guessing *)
24               val useMultByConst = ref false (* just guessing *)               val useMultByConst = ref false (* just guessing *)
25                 val byteWordLoadStores = ref false
26                 val SMLNJfloatingPoint = true (* must be true for SML/NJ *)
27              )              )
28    
29      structure Alpha32Jumps =      structure Alpha32Jumps =
# Line 29  Line 36 
36                  structure Emitter = Alpha32MCEmitter)                  structure Emitter = Alpha32MCEmitter)
37    
38      structure RA =      structure RA =
39         RegAlloc2         RegAlloc
40           (structure I         = Alpha32Instr           (structure I         = Alpha32Instr
41            structure MachSpec  = Alpha32Spec            structure MachSpec  = Alpha32Spec
42            structure Flowgraph = Alpha32FlowGraph            structure Flowgraph = Alpha32FlowGraph
# Line 39  Line 46 
46            structure Asm       = Alpha32AsmEmitter            structure Asm       = Alpha32AsmEmitter
47    
48            val sp = I.C.stackptrR            val sp = I.C.stackptrR
49            val stack = I.Region.stack            val spill = CPSRegions.spill
50    
51            fun pure _ = false            fun pure _ = false
52    
# Line 63  Line 70 
70    
71            (* spill register *)            (* spill register *)
72            fun spillInstrR(r,offset) =            fun spillInstrR(r,offset) =
73                [I.STORE{stOp=I.STL, b=sp, d=I.IMMop offset, r=r, mem=stack}]                [I.STORE{stOp=I.STL, b=sp, d=I.IMMop offset, r=r, mem=spill}]
74            fun spillInstrF(r,offset) =            fun spillInstrF(r,offset) =
75                [I.FSTORE{stOp=I.STT, b=sp, d=I.IMMop offset, r=r, mem=stack}]                [I.FSTORE{stOp=I.STT, b=sp, d=I.IMMop offset, r=r, mem=spill}]
76    
77            (* reload register *)            (* reload register *)
78            fun reloadInstrR(r,offset,rest) =            fun reloadInstrR(r,offset,rest) =
79                I.LOAD{ldOp=I.LDL, b=sp, d=I.IMMop offset, r=r, mem=stack}::rest                I.LOAD{ldOp=I.LDL, b=sp, d=I.IMMop offset, r=r, mem=spill}::rest
80            fun reloadInstrF(r,offset,rest) =            fun reloadInstrF(r,offset,rest) =
81                I.FLOAD{ldOp=I.LDT, b=sp, d=I.IMMop offset, r=r, mem=stack}::rest                I.FLOAD{ldOp=I.LDT, b=sp, d=I.IMMop offset, r=r, mem=spill}::rest
82           )           )
83    )    )

Legend:
Removed from v.469  
changed lines
  Added in v.583

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