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/hppa/hppaCpsRegs.sml
 [smlnj] / sml / trunk / src / compiler / CodeGen / hppa / hppaCpsRegs.sml

# Diff of /sml/trunk/src/compiler/CodeGen/hppa/hppaCpsRegs.sml

revision 732, Mon Nov 13 21:59:12 2000 UTC revision 733, Fri Nov 17 05:13:45 2000 UTC
# Line 7  Line 7
7  structure HppaCpsRegs : CPSREGS =  structure HppaCpsRegs : CPSREGS =
8  struct  struct
9    structure T = HppaMLTree    structure T = HppaMLTree
structure SL = SortedList
10
11    (* HPPA register conventions    (* HPPA register conventions
12       0     zero       0     zero
# Line 57  Line 56
56    val floatregs = map FREG (fromto(6, 30))    val floatregs = map FREG (fromto(6, 30))
57    val savedfpregs = []    val savedfpregs = []
58
val allRegs = SL.uniq(fromto(GP 0,GP 31))

59    val availR =    val availR =
60      map (fn T.REG(_,r) => r)      map (fn T.REG(_,r) => r)
val dedicatedR = SL.remove(SL.uniq availR, allRegs)

val availF = SL.uniq(fromto(FP 6, FP 30))

val allFRegs = SL.uniq(fromto(FP 0,FP 31))
62
63    val dedicatedF = SL.remove(availF, allFRegs)    local
64          structure ILS = IntListSet
65          fun l2s l = ILS.addList (ILS.empty, l)
66          val s2l = ILS.listItems
67          val -- = ILS.difference
68          infix --
69      in
70          val allRegs = l2s (fromto(GP 0,GP 31))
71          val dedicatedR = s2l (allRegs -- l2s availR)
72
73          val availFs = l2s (fromto(FP 6, FP 30))
74          val allFRegs = l2s (fromto(FP 0,FP 31))
75          val dedicatedF = s2l (allFRegs -- availFs)
76          val availF = s2l availFs
77      end
78
79    val signedGCTest = false    val signedGCTest = false