From 4fb7d5bac50c9fe5572dcb1ba4146e3c68cebadb Mon Sep 17 00:00:00 2001 From: "Ben.Lippmeier@anu.edu.au" Date: Fri, 13 Feb 2009 00:47:25 +0000 Subject: [PATCH] NCG: Validate fixes for powerpc --- compiler/nativeGen/PPC/Regs.hs | 2 +- compiler/nativeGen/RegAlloc/Linear/Main.hs | 2 ++ compiler/nativeGen/Regs.hs | 2 +- compiler/nativeGen/X86/Regs.hs | 11 +++++++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/compiler/nativeGen/PPC/Regs.hs b/compiler/nativeGen/PPC/Regs.hs index d6993b2..850bbf4 100644 --- a/compiler/nativeGen/PPC/Regs.hs +++ b/compiler/nativeGen/PPC/Regs.hs @@ -490,7 +490,7 @@ freeReg REG_Hp = fastBool False #ifdef REG_HpLim freeReg REG_HpLim = fastBool False #endif -freeReg n = fastBool True +freeReg _ = fastBool True -- | Returns 'Nothing' if this global register is not stored diff --git a/compiler/nativeGen/RegAlloc/Linear/Main.hs b/compiler/nativeGen/RegAlloc/Linear/Main.hs index 7f977d1..c838301 100644 --- a/compiler/nativeGen/RegAlloc/Linear/Main.hs +++ b/compiler/nativeGen/RegAlloc/Linear/Main.hs @@ -98,6 +98,8 @@ import RegAlloc.Linear.Stats import RegAlloc.Linear.JoinToTargets import RegAlloc.Liveness +-- import PprMach + import BlockId import Regs import Instrs diff --git a/compiler/nativeGen/Regs.hs b/compiler/nativeGen/Regs.hs index c93ecdd..5239520 100644 --- a/compiler/nativeGen/Regs.hs +++ b/compiler/nativeGen/Regs.hs @@ -58,7 +58,7 @@ module Regs ( allFPArgRegs, fits16Bits, makeImmediate, - freg, + fReg, sp, r3, r4, r27, r28, f1, f20, f21, #elif i386_TARGET_ARCH || x86_64_TARGET_ARCH diff --git a/compiler/nativeGen/X86/Regs.hs b/compiler/nativeGen/X86/Regs.hs index be83ad6..1f1c724 100644 --- a/compiler/nativeGen/X86/Regs.hs +++ b/compiler/nativeGen/X86/Regs.hs @@ -70,7 +70,10 @@ import Outputable ( Outputable(..), pprPanic, panic ) import qualified Outputable import Unique import FastBool + +#if defined(i386_TARGET_ARCH) || defined(x86_64_TARGET_ARCH) import Constants +#endif -- ----------------------------------------------------------------------------- -- Sizes on this architecture @@ -439,8 +442,10 @@ xmm n = RealReg (16+n) -- horror show ----------------------------------------------------------------- -freeReg :: RegNo -> FastBool -globalRegMaybe :: GlobalReg -> Maybe Reg +freeReg :: RegNo -> FastBool +globalRegMaybe :: GlobalReg -> Maybe Reg +allArgRegs :: [Reg] +callClobberedRegs :: [Reg] #if defined(i386_TARGET_ARCH) || defined(x86_64_TARGET_ARCH) @@ -651,7 +656,6 @@ globalRegMaybe CurrentNursery = Just (RealReg REG_CurrentNursery) globalRegMaybe _ = Nothing -- -allArgRegs :: [Reg] #if i386_TARGET_ARCH allArgRegs = panic "X86.Regs.allArgRegs: should not be used!" @@ -665,7 +669,6 @@ allArgRegs = panic "X86.Regs.allArgRegs: not defined for this architecture" -- | these are the regs which we cannot assume stay alive over a C call. -callClobberedRegs :: [Reg] #if i386_TARGET_ARCH -- caller-saves registers -- 1.7.10.4