[commit: ghc] master: Fix a build failure on non-{x86, amd64} (013e6f3)
Ian Lynagh
igloo at earth.li
Wed Jun 1 02:45:34 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/013e6f33f55a2ca1a7469b239cac3ae23879299d
>---------------------------------------------------------------
commit 013e6f33f55a2ca1a7469b239cac3ae23879299d
Author: Ian Lynagh <igloo at earth.li>
Date: Wed Jun 1 00:20:08 2011 +0100
Fix a build failure on non-{x86,amd64}
>---------------------------------------------------------------
compiler/nativeGen/X86/RegInfo.hs | 68 +++++++++++++++---------------------
1 files changed, 28 insertions(+), 40 deletions(-)
diff --git a/compiler/nativeGen/X86/RegInfo.hs b/compiler/nativeGen/X86/RegInfo.hs
index 21b594e..140ff57 100644
--- a/compiler/nativeGen/X86/RegInfo.hs
+++ b/compiler/nativeGen/X86/RegInfo.hs
@@ -13,12 +13,11 @@ import Size
import Reg
import Outputable
+import Platform
import Unique
-#if i386_TARGET_ARCH || x86_64_TARGET_ARCH
import UniqFM
import X86.Regs
-#endif
mkVirtualReg :: Unique -> Size -> VirtualReg
@@ -29,52 +28,41 @@ mkVirtualReg u size
FF80 -> VirtualRegD u
_other -> VirtualRegI u
-
--- reg colors for x86
-#if i386_TARGET_ARCH
regDotColor :: RealReg -> SDoc
regDotColor reg
= let Just str = lookupUFM regColors reg
in text str
regColors :: UniqFM [Char]
-regColors
- = listToUFM
- $ [ (eax, "#00ff00")
- , (ebx, "#0000ff")
- , (ecx, "#00ffff")
- , (edx, "#0080ff") ]
- ++ fpRegColors
+regColors = listToUFM (normalRegColors ++ fpRegColors)
--- reg colors for x86_64
-#elif x86_64_TARGET_ARCH
-regDotColor :: RealReg -> SDoc
-regDotColor reg
- = let Just str = lookupUFM regColors reg
- in text str
+-- TODO: We shouldn't be using defaultTargetPlatform here.
+-- We should be passing DynFlags in instead, and looking at
+-- its targetPlatform.
-regColors :: UniqFM [Char]
-regColors
- = listToUFM
- $ [ (rax, "#00ff00"), (eax, "#00ff00")
- , (rbx, "#0000ff"), (ebx, "#0000ff")
- , (rcx, "#00ffff"), (ecx, "#00ffff")
- , (rdx, "#0080ff"), (edx, "#00ffff")
- , (r8, "#00ff80")
- , (r9, "#008080")
- , (r10, "#0040ff")
- , (r11, "#00ff40")
- , (r12, "#008040")
- , (r13, "#004080")
- , (r14, "#004040")
- , (r15, "#002080") ]
- ++ fpRegColors
-#else
-regDotColor :: Reg -> SDoc
-regDotColor = panic "not defined"
-#endif
+normalRegColors :: [(Reg,String)]
+normalRegColors = case platformArch defaultTargetPlatform of
+ ArchX86 -> [ (eax, "#00ff00")
+ , (ebx, "#0000ff")
+ , (ecx, "#00ffff")
+ , (edx, "#0080ff") ]
+ ArchX86_64 -> [ (rax, "#00ff00"), (eax, "#00ff00")
+ , (rbx, "#0000ff"), (ebx, "#0000ff")
+ , (rcx, "#00ffff"), (ecx, "#00ffff")
+ , (rdx, "#0080ff"), (edx, "#00ffff")
+ , (r8, "#00ff80")
+ , (r9, "#008080")
+ , (r10, "#0040ff")
+ , (r11, "#00ff40")
+ , (r12, "#008040")
+ , (r13, "#004080")
+ , (r14, "#004040")
+ , (r15, "#002080") ]
+ ArchPPC -> panic "X86 normalRegColors ArchPPC"
+ ArchPPC_64 -> panic "X86 normalRegColors ArchPPC_64"
+ ArchSPARC -> panic "X86 normalRegColors ArchSPARC"
+ ArchUnknown -> panic "X86 normalRegColors ArchUnknown"
-#if i386_TARGET_ARCH || x86_64_TARGET_ARCH
fpRegColors :: [(Reg,String)]
fpRegColors =
[ (fake0, "#ff00ff")
@@ -85,4 +73,4 @@ fpRegColors =
, (fake5, "#5500ff") ]
++ zip (map regSingle [24..39]) (repeat "red")
-#endif
+
More information about the Cvs-ghc
mailing list