projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix to i386_insert_ffrees (#2724, #1944)
[ghc-hetmet.git]
/
compiler
/
nativeGen
/
MachRegs.lhs
diff --git
a/compiler/nativeGen/MachRegs.lhs
b/compiler/nativeGen/MachRegs.lhs
index
2205ce0
..
5832abe
100644
(file)
--- a/
compiler/nativeGen/MachRegs.lhs
+++ b/
compiler/nativeGen/MachRegs.lhs
@@
-104,10
+104,9
@@
import Unique
import UniqSet
import Constants
import FastTypes
import UniqSet
import Constants
import FastTypes
+import FastBool
import UniqFM
import UniqFM
-import GHC.Exts
-
#if powerpc_TARGET_ARCH
import Data.Word ( Word8, Word16, Word32 )
import Data.Int ( Int8, Int16, Int32 )
#if powerpc_TARGET_ARCH
import Data.Word ( Word8, Word16, Word32 )
import Data.Int ( Int8, Int16, Int32 )
@@
-503,18
+502,19
@@
worst n classN classC
-- Compare MachRegs.freeRegs and MachRegs.h to get these numbers.
--
#if i386_TARGET_ARCH
-- Compare MachRegs.freeRegs and MachRegs.h to get these numbers.
--
#if i386_TARGET_ARCH
-#define ALLOCATABLE_REGS_INTEGER 3#
-#define ALLOCATABLE_REGS_DOUBLE 6#
-#endif
+#define ALLOCATABLE_REGS_INTEGER (_ILIT(3))
+#define ALLOCATABLE_REGS_DOUBLE (_ILIT(6))
-#if x86_64_TARGET_ARCH
-#define ALLOCATABLE_REGS_INTEGER 5#
-#define ALLOCATABLE_REGS_DOUBLE 2#
-#endif
+#elif x86_64_TARGET_ARCH
+#define ALLOCATABLE_REGS_INTEGER (_ILIT(5))
+#define ALLOCATABLE_REGS_DOUBLE (_ILIT(2))
-#if powerpc_TARGET_ARCH
-#define ALLOCATABLE_REGS_INTEGER 16#
-#define ALLOCATABLE_REGS_DOUBLE 26#
+#elif powerpc_TARGET_ARCH
+#define ALLOCATABLE_REGS_INTEGER (_ILIT(16))
+#define ALLOCATABLE_REGS_DOUBLE (_ILIT(26))
+
+#else
+#error ToDo: define ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE
#endif
{-# INLINE regClass #-}
#endif
{-# INLINE regClass #-}
@@
-535,17
+535,17
@@
trivColorable classN conflicts exclusions
LeafUFM _ reg
-> case regClass reg of
RcInteger
LeafUFM _ reg
-> case regClass reg of
RcInteger
- -> case cI +# 1# of
+ -> case cI +# _ILIT(1) of
cI' -> (# cI' >=# ALLOCATABLE_REGS_INTEGER, cI', cF #)
RcDouble
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 #)
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
(# False, cI', cF' #)
-> case isSqueesed cI' cF' exclusions of
(# s, _, _ #) -> not s