This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FreeBSD/GCC Oddness.


Chris Keladis <chris@cmc.optus.net.au> writes:

> Hi folks,
>
> On a FreeBSD 4.8-RC box with "gcc version 2.95.4 20020320 [FreeBSD]" i
> have a question with how the compiler computes the space for local
> variables on the stack.
>
> Using the following sample code.
>
>
> /* dummy program */
>
> int func(void)
> {
>    int i;
>
>    return(0);
> }
>
> int main(void)
> {
>    func();
>
>    return(0);
> }
>
>
> Generates the following prologue (for func()) in GDB
>
> 0x804846c <func>:       push   %ebp
> 0x804846d <func+1>:     mov    %esp,%ebp
> 0x804846f <func+3>:     sub    $0x18,%esp
>
>
> Why is 0x18 subtracted instead of 0x4? Alignment, performance? A
> RedHat box with the same code sub's 0x4.

Was the same gcc version, with the same switches?

> I was wondering if some kind soul could enlighten me on the reason
> for this?

Maybe (non)optimization has something to do with it. Try -O2 or -O3
and most likely you will obtain a dramaticall change for produced
code.

-- 
Oscar


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]