X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FTargetReg.hs;h=1a8d88380d1debd1052d893f99b1d933c9883689;hb=e9f9ec1e57d53b9302a395ce0d02c0fa59e28341;hp=848f72bf1822f3733d9808b3a391ac3f8ad1b530;hpb=f9288086f935c97812b2d80defcff38baf7b6a6c;p=ghc-hetmet.git diff --git a/compiler/nativeGen/TargetReg.hs b/compiler/nativeGen/TargetReg.hs index 848f72b..1a8d883 100644 --- a/compiler/nativeGen/TargetReg.hs +++ b/compiler/nativeGen/TargetReg.hs @@ -39,7 +39,6 @@ import qualified X86.RegInfo as X86 #elif powerpc_TARGET_ARCH import qualified PPC.Regs as PPC -import qualified PPC.RegInfo as PPC #elif sparc_TARGET_ARCH import qualified SPARC.Regs as SPARC @@ -48,64 +47,39 @@ import qualified SPARC.Regs as SPARC #error "RegAlloc.Graph.TargetReg: not defined" #endif +targetVirtualRegSqueeze :: RegClass -> VirtualReg -> FastInt +targetRealRegSqueeze :: RegClass -> RealReg -> FastInt +targetClassOfRealReg :: RealReg -> RegClass +targetWordSize :: Size +targetMkVirtualReg :: Unique -> Size -> VirtualReg +targetRegDotColor :: RealReg -> SDoc + -- x86 ------------------------------------------------------------------------- #if i386_TARGET_ARCH || x86_64_TARGET_ARCH -targetRegClasses :: Reg -> [RegClass] -targetRegClasses = X86.regClasses - -targetRegSupportsClass :: Reg -> RegClass -> Bool -targetRegSupportsClass = X86.regSupportsClass - -targetWordSize :: Size -targetWordSize = intSize wordWidth - -targetMkVReg :: Unique -> Size -> Reg -targetMkVReg = X86.mkVReg - -targetRegDotColor :: Reg -> SDoc -targetRegDotColor = X86.regDotColor - +targetVirtualRegSqueeze = X86.virtualRegSqueeze +targetRealRegSqueeze = X86.realRegSqueeze +targetClassOfRealReg = X86.classOfRealReg +targetWordSize = intSize wordWidth +targetMkVirtualReg = X86.mkVirtualReg +targetRegDotColor = X86.regDotColor -- ppc ------------------------------------------------------------------------- #elif powerpc_TARGET_ARCH -targetRegClasses :: Reg -> [RegClass] -targetRegClasses = PPC.regClasses - -targetRegSupportsClass :: Reg -> RegClass -> Bool -targetRegSupportsClass = PPC.regSupportsClass - -targetWordSize :: Size -targetWordSize = intSize wordWidth - -targetMkVReg :: Unique -> Size -> Reg -targetMkVReg = PPC.mkVReg - -targetRegDotColor :: Reg -> SDoc -targetRegDotColor = PPC.regDotColor - +targetVirtualRegSqueeze = PPC.virtualRegSqueeze +targetRealRegSqueeze = PPC.realRegSqueeze +targetClassOfRealReg = PPC.classOfRealReg +targetWordSize = intSize wordWidth +targetMkVirtualReg = PPC.mkVirtualReg +targetRegDotColor = PPC.regDotColor -- sparc ----------------------------------------------------------------------- #elif sparc_TARGET_ARCH - -targetVirtualRegSqueeze :: RegClass -> VirtualReg -> FastInt targetVirtualRegSqueeze = SPARC.virtualRegSqueeze - -targetRealRegSqueeze :: RegClass -> RealReg -> FastInt -targetRealRegSqueeze = SPARC.realRegSqueeze - -targetClassOfRealReg :: RealReg -> RegClass -targetClassOfRealReg = SPARC.classOfRealReg - --- | Size of a machine word. --- This is big enough to hold a pointer. -targetWordSize :: Size -targetWordSize = intSize wordWidth - -targetMkVirtualReg :: Unique -> Size -> VirtualReg -targetMkVirtualReg = SPARC.mkVirtualReg - -targetRegDotColor :: RealReg -> SDoc -targetRegDotColor = SPARC.regDotColor +targetRealRegSqueeze = SPARC.realRegSqueeze +targetClassOfRealReg = SPARC.classOfRealReg +targetWordSize = intSize wordWidth +targetMkVirtualReg = SPARC.mkVirtualReg +targetRegDotColor = SPARC.regDotColor -------------------------------------------------------------------------------- #else