Ram initialization and small c.
Steve Gehlbach
steve at nexpath.com
Tue Feb 25 22:30:01 CET 2003
Eric W. Biederman wrote:
>
> Steve for a feel of my worries try compiling that code with gcc-3.3. If
> what I saw earlier today is right it won't work because someone has decided
> that aggressive inlining is bad thing...
>
Hmm... I assume you mean gcc-3.2.2 unless you have a pre-release. I
have gcc3.2 on a RH machine, it seems to work on my code, although I had
to delete a couple of asm's and fiddle with raminit.c: went back to
"register int i asm ("ecx");". Otherwise gcc3.2 was more efficient
(-181 lines), and it uses the %ebp differently. As a result, checking
for "push" or "esp" is not effective to determine spill cases, you have
to look for %ebp which it does tmp storage with mov's.
Interesting that gcc3.2 seems to ignore the -fomit-frame-pointer since
there is a "leave" at the end. Not sure why.
Note the reason for the push of the %ebp in gcc2.95 is that 2.95 uses it
for temp storage (hadn't noticed this before) if you set
-fomit-frame-pointer, and so it push/pops it on entry and leaving.
-Steve
More information about the coreboot
mailing list