summaryrefslogtreecommitdiff
path: root/compiler/llvmGen
diff options
context:
space:
mode:
authorDavid Terei <davidterei@gmail.com>2010-10-04 15:38:43 +0000
committerDavid Terei <davidterei@gmail.com>2010-10-04 15:38:43 +0000
commitbb82786487a86283c7083a7a7e5b9971aa6a405a (patch)
tree01c3c5800e12bdb1ae6608ff48275e3acbaa5d3a /compiler/llvmGen
parent7594ea1867c3dd08696a25c81aca2e2e84f7a25a (diff)
downloadhaskell-bb82786487a86283c7083a7a7e5b9971aa6a405a.tar.gz
LLVM: Fix compilation of writebarrier, #4308
Diffstat (limited to 'compiler/llvmGen')
-rw-r--r--compiler/llvmGen/LlvmCodeGen/CodeGen.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
index 076974a3c5..cd135de5cb 100644
--- a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
+++ b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
@@ -152,6 +152,10 @@ genCall :: LlvmEnv -> CmmCallTarget -> HintedCmmFormals -> HintedCmmActuals
-- Write barrier needs to be handled specially as it is implemented as an LLVM
-- intrinsic function.
+#if i386_TARGET_ARCH || x86_64_TARGET_ARCH || sparc_TARGET_ARCH
+genCall env (CmmPrim MO_WriteBarrier) _ _ _ = return (env, nilOL, [])
+
+#else
genCall env (CmmPrim MO_WriteBarrier) _ _ _ = do
let fname = fsLit "llvm.memory.barrier"
let funSig = LlvmFunctionDecl fname ExternallyVisible CC_Ccc LMVoid
@@ -172,6 +176,7 @@ genCall env (CmmPrim MO_WriteBarrier) _ _ _ = do
where
lmTrue :: LlvmVar
lmTrue = LMLitVar $ LMIntLit (-1) i1
+#endif
-- Handle all other foreign calls and prim ops.
genCall env target res args ret = do