x86: free up all FP regs before doing a ccall. This appears to be a
part of the x86 calling convention(s).
pprInstr (JMP op) = (<>) (ptext SLIT("\tjmp *")) (pprOperand L op)
pprInstr (CALL imm)
pprInstr (JMP op) = (<>) (ptext SLIT("\tjmp *")) (pprOperand L op)
pprInstr (CALL imm)
- = hcat [ ptext SLIT("\tffree %st(0) ; call "), pprImm imm ]
+ = vcat [ ptext SLIT("\tffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)"),
+ ptext SLIT("\tffree %st(4) ;ffree %st(5) ;ffree %st(6) ;ffree %st(7)"),
+ hcat [ ptext SLIT("\tcall "), pprImm imm ]
+ ]
-- Simulating a flat register set on the x86 FP stack is tricky.
-- Simulating a flat register set on the x86 FP stack is tricky.