Related articles |
---|
Pentium4 new registers jacob@jacob.remcomp.fr (jacob navia) (2001-10-20) |
Re: Pentium4 new registers jgd@cix.co.uk (2001-10-21) |
From: | "jacob navia" <jacob@jacob.remcomp.fr> |
Newsgroups: | comp.compilers |
Date: | 20 Oct 2001 22:08:57 -0400 |
Organization: | Wanadoo, l'internet avec France Telecom |
Keywords: | architecture, code, question |
Posted-Date: | 20 Oct 2001 22:08:57 EDT |
Hi
I am the developer of the lcc-win32 compiler and I am adding support for the
new pentium 4 registers (8 128bit registers)
In the context of a C compiler, does anybody here know more about the
calling conventions for saving/restoring this registers? I mean, Intel
proposes a caller save protocol. Of course it is the one that will always
work, but will generate unnecessary savings/restoring of those huge
registers, what I would like to avoid...
All compiler writers for the x86 agreed to always preserve ebx esi and edi,
so they do not have to be saved/restored, this is a callee saves convention,
what is more efficient. Any hints of a similar protocol here?
Does gcc handle this?
What calling conventions does gcc use?
Does Microsoft MSVC use those regs? Which calling conventions do they use?
In another (related) topic, I am thinking of using those regs as:
o 16 floating point registers
o 32 integer registers. They can't be used for addressing though, so they
aren't really equivalent as the 32 bit general purpose registers.
How does gcc use those regs?
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 :-)
Anyone else has done this in the context of a C compiler?
Thanks in advance for your attention.
The lcc-win32 compiler can be downloaded at no charge from
http://www.cs.virginia.edu/~lcc-win32
Return to the
comp.compilers page.
Search the
comp.compilers archives again.