Commit 72475c82 authored by Simon Marlow's avatar Simon Marlow
Browse files

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
parent 61af839f
......@@ -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'
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment