diff options
Diffstat (limited to 'compiler/nativeGen/RegClass.hs')
-rw-r--r-- | compiler/nativeGen/RegClass.hs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/compiler/nativeGen/RegClass.hs b/compiler/nativeGen/RegClass.hs new file mode 100644 index 0000000000..8b6b2d4160 --- /dev/null +++ b/compiler/nativeGen/RegClass.hs @@ -0,0 +1,31 @@ + +-- | An architecture independent description of a register's class. +module RegClass + ( RegClass (..) ) + +where + +import Outputable +import Unique + + +-- | The class of a register. +-- Used in the register allocator. +-- We treat all registers in a class as being interchangable. +-- +data RegClass + = RcInteger + | RcFloat + | RcDouble + deriving Eq + + +instance Uniquable RegClass where + getUnique RcInteger = mkUnique 'L' 0 + getUnique RcFloat = mkUnique 'L' 1 + getUnique RcDouble = mkUnique 'L' 2 + +instance Outputable RegClass where + ppr RcInteger = Outputable.text "I" + ppr RcFloat = Outputable.text "F" + ppr RcDouble = Outputable.text "D" |