X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FPPC%2FRegs.hs;h=d649d847f18185c02dcbfd18beb9abd0488cb30b;hb=1414e10a1470061e850b7ce2aa6350a428ade2e9;hp=18f06ed6ef0ed42dd7b657171b37a0e64d24ebc2;hpb=a2a67cd520b9841114d69a87a423dabcb3b4368e;p=ghc-hetmet.git 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 ------------------------------------------------------------------