Ram initialization and small c.
Eric W. Biederman
ebiederman at lnxi.com
Tue Mar 4 12:40:00 CET 2003
Jeremy Jackson <jerj at coplanar.net> writes:
> Another idea on the subject:
>
> On some chipsets, the entire range of supported processors have MMX and
> maybe SSE/SSE2. MMX gives 8 extra 64 bit registers (nobody uses
> floating-point in LinuxBIOS, right?) that can be used as 32bit. They
> can't be used as address/index/base, but only for data. See the MOVD
> instruction.
>
> Newer versions of gcc offer to produce code which uses them with -mmmx,
> -m3dnow, or at least inline asm can use the registers. Might be nice
> for checksums with the vector instructions also.
Nice I had missed the fact that you can use MOVD with MMX registers.
I have used it just a little bit when debugging to access the SSE
registers but I didn't need them in production so they did not
get used.
I think this is almost justification enough to write a new compiler.
16 extra 32 bit registers that you can use for scratch values on modern
cpus. And 8 extra registers on the older cpus.
And using them can be a compile option so the code does not get polluted
with strange assumptions.
I won't support those in the very first pass but that is definitely where
I am going to work on as soon as I can produce code.
Can you see a way to stuff more than 32bit in there?
Eric
More information about the coreboot
mailing list