From: Simon Marlow Date: Wed, 13 Jun 2007 14:24:31 +0000 (+0000) Subject: FIX #1424: x86_64 NCG generated wrong code for foreign call with >8 double args X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=72475c8247406b64b8d5d9441c0b37b17d703a54 FIX #1424: x86_64 NCG generated wrong code for foreign call with >8 double args I guess we have a missing test... I'll add one --- diff --git a/compiler/nativeGen/MachCodeGen.hs b/compiler/nativeGen/MachCodeGen.hs index 0bab29c..d371214 100644 --- a/compiler/nativeGen/MachCodeGen.hs +++ b/compiler/nativeGen/MachCodeGen.hs @@ -3361,9 +3361,9 @@ genCCall target dest_regs args vols = do (arg_reg, arg_code) <- getSomeReg arg delta <- getDeltaNat setDeltaNat (delta-arg_size) - let code' = code `appOL` toOL [ - MOV arg_rep (OpReg arg_reg) (OpAddr (spRel 0)), + let code' = code `appOL` arg_code `appOL` toOL [ SUB wordRep (OpImm (ImmInt arg_size)) (OpReg rsp) , + MOV arg_rep (OpReg arg_reg) (OpAddr (spRel 0)), DELTA (delta-arg_size)] push_args rest code'