|Pentium4 new registers firstname.lastname@example.org (jacob navia) (2001-10-20)|
|Re: Pentium4 new registers email@example.com (2001-10-21)|
|From:||firstname.lastname@example.org (John Dallman)|
|Date:||21 Oct 2001 21:24:45 -0400|
|Organization:||By appointment only|
|Posted-Date:||21 Oct 2001 21:24:45 EDT|
email@example.com (jacob navia) wrote:
> I am the developer of the lcc-win32 compiler and I am adding support
> for the new pentium 4 registers (8 128bit registers)
Good luck, Caruthers!
> Does Microsoft MSVC use those regs? Which calling conventions do they
VC6 doesn't use them at all; the beta of VC7 that's in Visual
Studio.NET beta 2 has no flags for P4 code generation, so I assume it
can't use them either.
> How does intel's icc use those regs? (If anyone from intel reads this
> newgroup I would be happy to know how they do it :-)
I've done a bit of debugging of code compiled with Intel's icl.exe on
Windows NT. As far as I could see, it used the extra registers only as
scratch floating point registers, but one can't be sure that's all it
Using them for parameter passing has the problem that you may well be
calling older code that doesn't know about them, so the preservation
problem is moot. This could be changed for static functions if you
were using inter-procedural optimisation, but I wouldn't be keen to
risk it personally.
It didn't try to do all FP work in these registers, but was happy to
use them for operations which they could do better (eg, C cast of
float/double to int/long). It seemed to use a mixture of classic x87
registers and P4 registers for ordinary floating point arithmetic, but
the rules it was using to decide which weren't immediately obvious.
Two important caveats: there are no instructions to move floating
point data between old and new floating point registers, and if you
use a mixture of register types, the precision setting of the x87
registers becomes highly significant. If you stay with the defaults
(53-bit mantissa), the results seem to be compatible between the two
John Dallman firstname.lastname@example.org
"C++ - the FORTRAN of the early 21st century."
Return to the
Search the comp.compilers archives again.