Split out "Raw Cmm" dump to its own flag -ddump-raw-cmm
[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         | RcDoubleSSE -- x86 only: the SSE regs are a separate class
21         deriving Eq
22
23
24 instance Uniquable RegClass where
25     getUnique RcInteger = mkRegClassUnique 0
26     getUnique RcFloat   = mkRegClassUnique 1
27     getUnique RcDouble  = mkRegClassUnique 2
28     getUnique RcDoubleSSE = mkRegClassUnique 3
29
30 instance Outputable RegClass where
31     ppr RcInteger       = Outputable.text "I"
32     ppr RcFloat         = Outputable.text "F"
33     ppr RcDouble        = Outputable.text "D"
34     ppr RcDoubleSSE     = Outputable.text "S"