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