Are there any advantages of using 64bits over 32bits? Just wondering...
So in this case, the x64 version is using fewer "hand-made" optims but is still faster.Of course, it is not magical. It is because of optims made by the compiler (additionnal registers, and perhaps "heavy" SSE/SSE2 use)
32 bit builds will not use SSE/SSE2 unless specifically indicated in the settings
64 bit builds *need* to use SSE/SSE2 since it is the only supported mode of floating point operation
This is a programmer's urban legend. The fpu is still there, and still usable in x64.Is VC8 using SSE/SSE2 by default under x64? Very likely. But it might also be using a mix of SSE and x87.
The feature to see the legacy x87 registers for x64 applications is not available in VS2005. The main reason for this is that originally the x87 registers were not available for 64bit applications at all. We later did make them available, but only accessible through MASM. Due to the late addition of the support for x87 and limited use cases, we weren't able to get it into the VS2005 product.So to answer your question, you can't see them in the VS2005 debugger. You can use the 64bit version of WinDbg though, if that helps.Thanks for your feedback.Kang Su GatlinVisual C++ Program Manager
x87, mmx and even 3dnow are still there.(see "AMD64 Architecture Programmer’s Manual Volume 5: 64-Bit Media and x87 Floating-Point Instructions")
x87 floating-point instructions can be executed in any of the architecture’s operating modes. Existing x87 binary programs run in legacy and compatibility modes without modification.
I uploaded VC8 32 and 64 builds there:http://gabriel.mp3-tech.org/lame/x64/Strange thing is that enabling sse2 decreases speed of the x86 compilation.
64-bit is about 16% faster than 32-bit, but how come there is difference in file sizes when using VBR? I haven't ABX'ed the resulting files, so I don't know if the difference is audible.