bloodline wrote:
I've been reading Microsofts's Technical docs... apparently the x86's FPU (the x87) registers are not saved during a context switch in XP64... this means that you can't use the crappy x86 FPU anymore!!! It took 20 years, but finally they managed to get rid of that peice of junk :-D
You mean a task context switch? How frequent is that compared to the number of instructions executed between switches? I know the x86 FPU was a {bleep} to code for properly, but register save on context switch is not that big hit. On any x86 from the last 10 years the chances that the registers weren't just moved to/from L1 cache are almost nil.
So now, instead of backing up a handful of x86 FPU registers when a task switch occurs, you instead to back up the vector units register file? These units are far bigger than the old FPU register file - how does that make it faster?
This also means that the MMX and 3DNow! instruction sets no longer work.
In future all Floating point work is to be done by the Vector units, SSE and SSE2 :-)
This is good news all around!!! This also explains why we are seeing speed ups in 64bit version of windows when running 64bit apps.
Buh... surely FPU code designed for sequential execution is not going to run faster in the vector unit, just becasue it is a vector unit.