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/sparc/sparcCpsRegs.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/CodeGen/sparc/sparcCpsRegs.sml

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

revision 839, Thu Jun 7 20:28:44 2001 UTC revision 840, Fri Jun 15 19:05:19 2001 UTC
# Line 15  Line 15 
15    fun REG r = T.REG(32,GP r)    fun REG r = T.REG(32,GP r)
16    fun FREG f = T.FREG(64,FP f)    fun FREG f = T.FREG(64,FP f)
17    
18      val returnPtr         = GP 15
19    
20      local
21          val stdarg0       = REG(24) (* %i0 *)
22          val stdcont0      = REG(25) (* %i1 *)
23          val stdclos0      = REG(26) (* %i2 *)
24          val stdlink0      = REG(1)  (* %g1 *)
25          val baseptr0      = REG(27) (* %i3 *)
26          val limitptr0     = REG(4)  (* %g4 *)
27          val varptr0       = REG(29) (* %i5 *)
28          val storeptr0     = REG(5)  (* %g5 *)
29          val exnptr0       = REG(7)  (* %g7 *)
30          val gcLink0       = T.REG(32,returnPtr)
31          val frameptr0     = REG(30)
32      in
33    val vfp               = SparcCells.newReg()    val vfp               = SparcCells.newReg()
34    val vfptr             = T.REG(32, vfp)    val vfptr             = T.REG(32, vfp)
35    
36    fun stdarg _          = REG(24) (* %i0 *)        fun stdarg _      = stdarg0
37    fun stdcont _         = REG(25) (* %i1 *)        fun stdcont _     = stdcont0
38    fun stdclos _         = REG(26) (* %i2 *)        fun stdclos _     = stdclos0
39    fun stdlink _         = REG(1)  (* %g1 *)        fun stdlink _     = stdlink0
40    fun baseptr _         = REG(27) (* %i3 *)        fun baseptr _     = baseptr0
41    
42    fun limitptr _        = REG(4)  (* %g4 *)        fun limitptr _    = limitptr0
43    fun varptr _          = REG(29) (* %i5 *)        fun varptr _      = varptr0
44    val exhausted         = SOME(T.CC(T.GTU,C.psr))  (* %psr *)    val exhausted         = SOME(T.CC(T.GTU,C.psr))  (* %psr *)
45    fun storeptr _        = REG(5)  (* %g5 *)        fun storeptr _    = storeptr0
46    val allocptr          = REG(6)  (* %g6 *)    val allocptr          = REG(6)  (* %g6 *)
47    fun exnptr _          = REG(7)  (* %g7 *)        fun exnptr _      = exnptr0
48    
49    val returnPtr         = GP 15        fun gcLink _      = gcLink0
50    fun gcLink _          = T.REG(32,returnPtr)  
51    val stackptr          = REG(14)        fun frameptr _    = frameptr0
52    
53     (* Warning %o2 is used as the asmTmp     (* Warning %o2 is used as the asmTmp
54      *)      *)
# Line 51  Line 66 
66    val floatregs = map FREG (fromto(0,31,2))    val floatregs = map FREG (fromto(0,31,2))
67    val savedfpregs = []    val savedfpregs = []
68    
   val availR =  
     map (fn T.REG(_,r) => r)  
         ([stdlink(false), stdclos(false), stdarg(false), stdcont(false), gcLink(false)] @ miscregs)  
   
69    local    local
70              fun unREG (T.REG (_, r)) = r
71                | unREG _ = raise Fail "sparcCpsRegs:unREG"
72        structure SC = SparcCells.SortedCells        structure SC = SparcCells.SortedCells
73        val -- = SC.difference        val -- = SC.difference
74        infix --        infix --
75    in    in
76              val availR =
77                  map unREG ([stdlink0, stdclos0, stdarg0, stdcont0, gcLink0]
78                             @ miscregs)
79    
80        val allRegs = map GP (fromto(0, 31, 1))        val allRegs = map GP (fromto(0, 31, 1))
81        val dedicatedR = SC.return (SC.uniq allRegs -- SC.uniq availR)        val dedicatedR = SC.return (SC.uniq allRegs -- SC.uniq availR)
82    
83        val availF =  map FP (fromto(0, 30, 2))        val availF =  map FP (fromto(0, 30, 2))
84        val dedicatedF = []        val dedicatedF = []
   end  
85    
86    val signedGCTest = false    val signedGCTest = false
87    val addressWidth = 32    val addressWidth = 32
88    
89              val ccallCallerSaveR =
90                  map unREG [limitptr0, storeptr0, exnptr0, allocptr]
91              val ccallCallerSaveF = []
92          end (*local*)
93      end (* local *)
94  end  end
95    

Legend:
Removed from v.839  
changed lines
  Added in v.840

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