-- | An architecture independent description of a register's class.moduleRegClass(RegClass (..))whereimportGhcPrelude importOutputable importUnique -- | The class of a register.-- Used in the register allocator.-- We treat all registers in a class as being interchangable.--dataRegClass =RcInteger |RcFloat |RcDouble |RcDoubleSSE -- x86 only: the SSE regs are a separate classderivingEqinstanceUniquable RegClass wheregetUnique RcInteger =mkRegClassUnique 0getUniqueRcFloat =mkRegClassUnique 1getUniqueRcDouble =mkRegClassUnique 2getUniqueRcDoubleSSE =mkRegClassUnique 3instanceOutputable RegClass whereppr RcInteger =Outputable.text "I"pprRcFloat =Outputable.text "F"pprRcDouble =Outputable.text "D"pprRcDoubleSSE =Outputable.text "S"