Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : ghc-7.2

http://hackage.haskell.org/trac/ghc/changeset/897bd5b0776e1601b742db0589613d27a8086344

>---------------------------------------------------------------

commit 897bd5b0776e1601b742db0589613d27a8086344
Author: Erik de Castro Lopo <[email protected]>
Date:   Thu May 26 18:38:11 2011 +1000

    Handle II8 Size value in PowerPC code generator.

>---------------------------------------------------------------

 compiler/nativeGen/PPC/CodeGen.hs |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/compiler/nativeGen/PPC/CodeGen.hs 
b/compiler/nativeGen/PPC/CodeGen.hs
index 8473731..89ad516 100644
--- a/compiler/nativeGen/PPC/CodeGen.hs
+++ b/compiler/nativeGen/PPC/CodeGen.hs
@@ -903,7 +903,7 @@ genCCall' _ (CmmPrim MO_WriteBarrier) _ _
  = return $ unitOL LWSYNC
 
 genCCall' gcp target dest_regs argsAndHints
-  = ASSERT (not $ any (`elem` [II8,II16]) $ map cmmTypeSize argReps)
+  = ASSERT (not $ any (`elem` [II16]) $ map cmmTypeSize argReps)
         -- we rely on argument promotion in the codeGen
     do
         (finalStack,passArgumentsCode,usedRegs) <- passArguments
@@ -1058,23 +1058,23 @@ genCCall' gcp target dest_regs argsAndHints
                     = case gcp of
                       GCPDarwin ->
                           case cmmTypeSize rep of
+                          II8  -> (1, 0, 4, gprs)
                           II32 -> (1, 0, 4, gprs)
                           -- The Darwin ABI requires that we skip a
                           -- corresponding number of GPRs when we use
                           -- the FPRs.
                           FF32 -> (1, 1, 4, fprs)
                           FF64 -> (2, 1, 8, fprs)
-                          II8  -> panic "genCCall' passArguments II8"
                           II16 -> panic "genCCall' passArguments II16"
                           II64 -> panic "genCCall' passArguments II64"
                           FF80 -> panic "genCCall' passArguments FF80"
                       GCPLinux ->
                           case cmmTypeSize rep of
+                          II8  -> (1, 0, 4, gprs)
                           II32 -> (1, 0, 4, gprs)
                           -- ... the SysV ABI doesn't.
                           FF32 -> (0, 1, 4, fprs)
                           FF64 -> (0, 1, 8, fprs)
-                          II8  -> panic "genCCall' passArguments II8"
                           II16 -> panic "genCCall' passArguments II16"
                           II64 -> panic "genCCall' passArguments II64"
                           FF80 -> panic "genCCall' passArguments FF80"



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to