X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmParse.y;h=4c2fffa5eafaa47ff25fd8270d2478eff97dcb4b;hb=8b7eaa404043294bd4cb4a0322ac1f7115bad6a0;hp=5a379c8c65f2cdd95c5434fd8857bf3f97df3aad;hpb=0981e24e9980b8b26e6f20fc56bebc1c7416cc4f;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmParse.y b/compiler/cmm/CmmParse.y index 5a379c8..4c2fffa 100644 --- a/compiler/cmm/CmmParse.y +++ b/compiler/cmm/CmmParse.y @@ -909,29 +909,15 @@ foreignCall conv_string results_code expr_code args_code vols safety ret case convention of -- Temporary hack so at least some functions are CmmSafe CmmCallConv -> code (stmtC (CmmCall (CmmCallee expr convention) results args safety ret)) - _ -> - let expr' = adjCallTarget convention expr args in - case safety of + _ -> case safety of CmmUnsafe -> code (emitForeignCall' PlayRisky results - (CmmCallee expr' convention) args vols NoC_SRT ret) + (CmmCallee expr convention) args vols NoC_SRT ret) CmmSafe srt -> code (emitForeignCall' (PlaySafe unused) results - (CmmCallee expr' convention) args vols NoC_SRT ret) where + (CmmCallee expr convention) args vols NoC_SRT ret) where unused = panic "not used by emitForeignCall'" -adjCallTarget :: CCallConv -> CmmExpr -> [(CmmExpr,MachHint)] -> CmmExpr -#ifdef mingw32_TARGET_OS --- On Windows, we have to add the '@N' suffix to the label when making --- a call with the stdcall calling convention. -adjCallTarget StdCallConv (CmmLit (CmmLabel lbl)) args - = CmmLit (CmmLabel (addLabelSize lbl (sum (map size args)))) - where size (e,_) = max wORD_SIZE (machRepByteWidth (cmmExprRep e)) - -- c.f. CgForeignCall.emitForeignCall -#endif -adjCallTarget _ expr _ - = expr - primCall :: [ExtFCode (CmmFormal,MachHint)] -> FastString @@ -1102,7 +1088,7 @@ parseCmmFile dflags filename = do let ms = getMessages pst printErrorsAndWarnings dflags ms when (errorsFound dflags ms) $ exitWith (ExitFailure 1) - dumpIfSet_dyn dflags Opt_D_dump_cmm "Cmm" (pprCmms [cmm]) + dumpIfSet_dyn dflags Opt_D_dump_cmm "Cmm" (ppr cmm) return (Just cmm) where no_module = panic "parseCmmFile: no module"