On Sat, 10 Mar 2012 20:35:02 -0600, Sean Cavanaugh <worksonmymach...@gmail.com>
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.