X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=compiler%2FnativeGen%2FMachRegs.lhs;h=85c88b2ed3b489923434fc12cf0ccea251ad9e56;hb=206b4dec78250efef3cd927d64dc6cbc54a16c3d;hp=2205ce0218dae7c76b576400a2fd534a9cf02b76;hpb=5d7e13eab7070d6858f6b8ff572baed572967fe2;p=ghc-hetmet.git diff --git a/compiler/nativeGen/MachRegs.lhs b/compiler/nativeGen/MachRegs.lhs index 2205ce0..85c88b2 100644 --- a/compiler/nativeGen/MachRegs.lhs +++ b/compiler/nativeGen/MachRegs.lhs @@ -104,10 +104,9 @@ import Unique import UniqSet import Constants import FastTypes +import FastBool import UniqFM -import GHC.Exts - #if powerpc_TARGET_ARCH import Data.Word ( Word8, Word16, Word32 ) import Data.Int ( Int8, Int16, Int32 ) @@ -503,18 +502,18 @@ worst n classN classC -- Compare MachRegs.freeRegs and MachRegs.h to get these numbers. -- #if i386_TARGET_ARCH -#define ALLOCATABLE_REGS_INTEGER 3# -#define ALLOCATABLE_REGS_DOUBLE 6# +#define ALLOCATABLE_REGS_INTEGER (_ILIT(3)) +#define ALLOCATABLE_REGS_DOUBLE (_ILIT(6)) #endif #if x86_64_TARGET_ARCH -#define ALLOCATABLE_REGS_INTEGER 5# -#define ALLOCATABLE_REGS_DOUBLE 2# +#define ALLOCATABLE_REGS_INTEGER (_ILIT(5)) +#define ALLOCATABLE_REGS_DOUBLE (_ILIT(2)) #endif #if powerpc_TARGET_ARCH -#define ALLOCATABLE_REGS_INTEGER 16# -#define ALLOCATABLE_REGS_DOUBLE 26# +#define ALLOCATABLE_REGS_INTEGER (_ILIT(16)) +#define ALLOCATABLE_REGS_DOUBLE (_ILIT(26)) #endif {-# INLINE regClass #-} @@ -535,17 +534,17 @@ trivColorable classN conflicts exclusions LeafUFM _ reg -> case regClass reg of RcInteger - -> case cI +# 1# of + -> case cI +# _ILIT(1) of cI' -> (# cI' >=# ALLOCATABLE_REGS_INTEGER, cI', cF #) RcDouble - -> case cF +# 1# of + -> case cF +# _ILIT(1) of cF' -> (# cF' >=# ALLOCATABLE_REGS_DOUBLE, cI, cF' #) EmptyUFM -> (# False, cI, cF #) - in case isSqueesed 0# 0# conflicts of + in case isSqueesed (_ILIT(0)) (_ILIT(0)) conflicts of (# False, cI', cF' #) -> case isSqueesed cI' cF' exclusions of (# s, _, _ #) -> not s