8b6b2d4160d0550db3db54ce798b0924b3956aa6
[ghc-hetmet.git] / compiler / nativeGen / RegClass.hs
1
2 -- | An architecture independent description of a register's class.
3 module RegClass 
4         ( RegClass (..) )
5
6 where
7
8 import  Outputable
9 import  Unique
10
11
12 -- | The class of a register. 
13 --      Used in the register allocator.
14 --      We treat all registers in a class as being interchangable.
15 --
16 data RegClass 
17         = RcInteger 
18         | RcFloat
19         | RcDouble
20         deriving Eq
21
22
23 instance Uniquable RegClass where
24     getUnique RcInteger = mkUnique 'L' 0
25     getUnique RcFloat   = mkUnique 'L' 1
26     getUnique RcDouble  = mkUnique 'L' 2
27
28 instance Outputable RegClass where
29     ppr RcInteger       = Outputable.text "I"
30     ppr RcFloat         = Outputable.text "F"
31     ppr RcDouble        = Outputable.text "D"