On Sat, 10 Mar 2012 20:35:02 -0600, Sean Cavanaugh <[email protected]> wrote:
On 3/10/2012 8:08 PM, Mantis wrote:Tuple!(float, float) callee() { do something to achieve result in st0,st1 fst st0, st1 into stack load stack values into EAX, EDX ret } void caller() { call callee() push EAX, EDX into a stack fld stack values into st0, st1 do something with st0, st1 } As opposed to: Tuple!(float, float) callee() { do something to achieve result in st0,st1 ret } void caller() { call callee() do something with st0, st1 } Is there something I miss here?Yes, the fact the FPU stack is deprecated :)
And that on x86-64, the plan is to allow the passing of floating point stack data through SSE, which would speed up _all_ structs, not just special MRV returns. IIRC, the exact ABI design for this isn't finished yet.
