The additional (and wider) general-purpose registers of the x64 architecture allow for significant gains in compiler efficiency and overall application speed. With more registers, there is less need to write out persistent data to memory, only to have to read it back a few instructions later.
Another gain with the additional and wider registers is faster function calls. Up to four arguments can be passed in registers to a function, a big improvement over the x86 approach of pushing and popping arguments onto the stack for every floating-point operation.
When running 32-bit applications, floating-point operations will use the floating point registers and the standard x86 conventions. But when running a native 64-bit application, floating point operations use the SSE2 registers.
|