X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FnativeGen%2FPPC%2FRegs.hs;fp=compiler%2FnativeGen%2FPPC%2FRegs.hs;h=d649d847f18185c02dcbfd18beb9abd0488cb30b;hp=18f06ed6ef0ed42dd7b657171b37a0e64d24ebc2;hb=335b9f366ac440259318777c4c07e4fa42fbbec6;hpb=d9f7177402769968e8f42b49c1941661e18c5773 diff --git a/compiler/nativeGen/PPC/Regs.hs b/compiler/nativeGen/PPC/Regs.hs index 18f06ed..d649d84 100644 --- a/compiler/nativeGen/PPC/Regs.hs +++ b/compiler/nativeGen/PPC/Regs.hs @@ -87,25 +87,15 @@ virtualRegSqueeze cls vr -> case vr of VirtualRegI{} -> _ILIT(1) VirtualRegHi{} -> _ILIT(1) - VirtualRegD{} -> _ILIT(0) - VirtualRegF{} -> _ILIT(0) - - -- We don't use floats on this arch, but we can't - -- return error because the return type is unboxed... - RcFloat - -> case vr of - VirtualRegI{} -> _ILIT(0) - VirtualRegHi{} -> _ILIT(0) - VirtualRegD{} -> _ILIT(0) - VirtualRegF{} -> _ILIT(0) + _other -> _ILIT(0) RcDouble -> case vr of - VirtualRegI{} -> _ILIT(0) - VirtualRegHi{} -> _ILIT(0) VirtualRegD{} -> _ILIT(1) VirtualRegF{} -> _ILIT(0) + _other -> _ILIT(0) + _other -> _ILIT(0) {-# INLINE realRegSqueeze #-} realRegSqueeze :: RegClass -> RealReg -> FastInt @@ -119,16 +109,6 @@ realRegSqueeze cls rr RealRegPair{} -> _ILIT(0) - -- We don't use floats on this arch, but we can't - -- return error because the return type is unboxed... - RcFloat - -> case rr of - RealRegSingle regNo - | regNo < 32 -> _ILIT(0) - | otherwise -> _ILIT(0) - - RealRegPair{} -> _ILIT(0) - RcDouble -> case rr of RealRegSingle regNo @@ -137,6 +117,8 @@ realRegSqueeze cls rr RealRegPair{} -> _ILIT(0) + _other -> _ILIT(0) + mkVirtualReg :: Unique -> Size -> VirtualReg mkVirtualReg u size | not (isFloatSize size) = VirtualRegI u @@ -152,6 +134,7 @@ regDotColor reg RcInteger -> Outputable.text "blue" RcFloat -> Outputable.text "red" RcDouble -> Outputable.text "green" + RcDoubleSSE -> Outputable.text "yellow" -- immediates ------------------------------------------------------------------