X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FnativeGen%2FReg.hs;h=50d179c00252fc5bd17eefd2572558ceb05360c0;hp=422ea2440f45a37b0f84932ce82392705e3f1091;hb=f537dd87c4a07526e2b1fc1bd1c125d652833641;hpb=388e3356f71daffa62f1d4157e1e07e4c68f218a diff --git a/compiler/nativeGen/Reg.hs b/compiler/nativeGen/Reg.hs index 422ea24..50d179c 100644 --- a/compiler/nativeGen/Reg.hs +++ b/compiler/nativeGen/Reg.hs @@ -55,6 +55,7 @@ data VirtualReg | VirtualRegHi {-# UNPACK #-} !Unique -- High part of 2-word register | VirtualRegF {-# UNPACK #-} !Unique | VirtualRegD {-# UNPACK #-} !Unique + | VirtualRegSSE {-# UNPACK #-} !Unique deriving (Eq, Show, Ord) instance Uniquable VirtualReg where @@ -64,6 +65,7 @@ instance Uniquable VirtualReg where VirtualRegHi u -> u VirtualRegF u -> u VirtualRegD u -> u + VirtualRegSSE u -> u instance Outputable VirtualReg where ppr reg @@ -72,6 +74,7 @@ instance Outputable VirtualReg where VirtualRegHi u -> text "%vHi_" <> pprUnique u VirtualRegF u -> text "%vF_" <> pprUnique u VirtualRegD u -> text "%vD_" <> pprUnique u + VirtualRegSSE u -> text "%vSSE_" <> pprUnique u renameVirtualReg :: Unique -> VirtualReg -> VirtualReg @@ -81,6 +84,7 @@ renameVirtualReg u r VirtualRegHi _ -> VirtualRegHi u VirtualRegF _ -> VirtualRegF u VirtualRegD _ -> VirtualRegD u + VirtualRegSSE _ -> VirtualRegSSE u classOfVirtualReg :: VirtualReg -> RegClass @@ -90,6 +94,7 @@ classOfVirtualReg vr VirtualRegHi{} -> RcInteger VirtualRegF{} -> RcFloat VirtualRegD{} -> RcDouble + VirtualRegSSE{} -> RcDoubleSSE -- Determine the upper-half vreg for a 64-bit quantity on a 32-bit platform @@ -148,8 +153,8 @@ realRegsAlias rr1 rr2 -------------------------------------------------------------------------------- -- | A register, either virtual or real data Reg - = RegVirtual {-# UNPACK #-} !VirtualReg - | RegReal {-# UNPACK #-} !RealReg + = RegVirtual !VirtualReg + | RegReal !RealReg deriving (Eq, Ord) regSingle :: RegNo -> Reg