X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FSPARC%2FRegs.hs;h=37dcfc21b09df55e2815f9d9b06546bfa493f5e1;hb=1353826e5159c9a5a81e75e0b7459271f27c08ea;hp=6e88ea9ce5a5ad5114b1000b3c8251c66dde4205;hpb=9de520b7194c9d759147db98deb3cd8d47d0de76;p=ghc-hetmet.git diff --git a/compiler/nativeGen/SPARC/Regs.hs b/compiler/nativeGen/SPARC/Regs.hs index 6e88ea9..37dcfc2 100644 --- a/compiler/nativeGen/SPARC/Regs.hs +++ b/compiler/nativeGen/SPARC/Regs.hs @@ -324,12 +324,18 @@ o1 = RealReg (oReg 1) f0 = RealReg (fReg 0) +#if sparc_TARGET_ARCH nCG_FirstFloatReg :: RegNo nCG_FirstFloatReg = unRealReg NCG_FirstFloatReg +#else +nCG_FirstFloatReg :: RegNo +nCG_FirstFloatReg = unRealReg f22 +#endif -- horror show ----------------------------------------------------------------- #if sparc_TARGET_ARCH + #define g0 0 #define g1 1 #define g2 2 @@ -399,6 +405,10 @@ nCG_FirstFloatReg = unRealReg NCG_FirstFloatReg freeReg :: RegNo -> FastBool +globalRegMaybe :: GlobalReg -> Maybe Reg + +#if defined(sparc_TARGET_ARCH) + freeReg g0 = fastBool False -- %g0 is always 0. @@ -492,7 +502,6 @@ freeReg _ = fastBool True -- in a real machine register, otherwise returns @'Just' reg@, where -- reg is the machine register it is stored in. -globalRegMaybe :: GlobalReg -> Maybe Reg #ifdef REG_Base globalRegMaybe BaseReg = Just (RealReg REG_Base) @@ -570,3 +579,13 @@ globalRegMaybe CurrentTSO = Just (RealReg REG_CurrentTSO) globalRegMaybe CurrentNursery = Just (RealReg REG_CurrentNursery) #endif globalRegMaybe _ = Nothing + + +#else + +freeReg _ = 0# +globalRegMaybe = panic "SPARC.Regs.globalRegMaybe: not defined" + +#endif + +