X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FMachCodeGen.hs;h=1e88867f6606097ddffbe76edbdf4038693aa619;hb=3e83dfb21b2f2220dce97427fff5c19459ae68d1;hp=7f09c9d3462e7ec43afd1e6e8cf87e4b75a05f8b;hpb=f41ed9e7eac5a351d8581400e696549a1fda01cc;p=ghc-hetmet.git diff --git a/compiler/nativeGen/MachCodeGen.hs b/compiler/nativeGen/MachCodeGen.hs index 7f09c9d..1e88867 100644 --- a/compiler/nativeGen/MachCodeGen.hs +++ b/compiler/nativeGen/MachCodeGen.hs @@ -2047,7 +2047,7 @@ getCondCode (CmmMachOp mop [x, y]) MO_U_Lt rep -> condIntCode LU x y MO_U_Le rep -> condIntCode LEU x y - other -> pprPanic "getCondCode(x86,sparc)" (pprMachOp mop) + other -> pprPanic "getCondCode(x86,x86_64,sparc)" (ppr (CmmMachOp mop [x,y])) getCondCode other = pprPanic "getCondCode(2)(x86,sparc)" (ppr other) @@ -2909,6 +2909,10 @@ genCCall fn cconv result_regs args #if i386_TARGET_ARCH +genCCall (CmmPrim MO_WriteBarrier) _ _ _ = return nilOL + -- write barrier compiles to no code on x86/x86-64; + -- we keep it this long in order to prevent earlier optimisations. + -- we only cope with a single result for foreign calls genCCall (CmmPrim op) [(r,_)] args vols = do case op of @@ -3078,7 +3082,7 @@ outOfLineFloatOp mop res args vols code2 <- stmtToInstrs (CmmAssign res (CmmReg tmp)) return (code1 `appOL` code2) where - lbl = mkForeignLabel fn Nothing True + lbl = mkForeignLabel fn Nothing False fn = case mop of MO_F32_Sqrt -> FSLIT("sqrtf") @@ -3119,6 +3123,10 @@ outOfLineFloatOp mop res args vols #if x86_64_TARGET_ARCH +genCCall (CmmPrim MO_WriteBarrier) _ _ _ = return nilOL + -- write barrier compiles to no code on x86/x86-64; + -- we keep it this long in order to prevent earlier optimisations. + genCCall (CmmPrim op) [(r,_)] args vols = outOfLineFloatOp op r args vols