Re: C calling conventions: how to pass a struct parameter?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Cezar Harabula <cezar.harabula@xxxxxxxxxxxxx> writes:

> Thank you for your answers. Unfortunately, I was not clear enough. I
> want to know what happens in the registers and in the stack when a
> procedure like
> 
> void PrintFoo(struct Foo foo)
> 
> is called. There is no universal C calling convention set for x86,  so
> I am interested in how GCC usually does.
> 
> What about a struct return value:
> struct bar Function() ?

The easy way to find out is to write some code and look at the result
when it is compiled using -S.  The results will change if you use the
-mregparm option.

Structures are normally passed by pushing the value of the structure
on the stack.

Structures are normally returned by arranging for the caller to pass
the address of a memory area as a hidden first argument.  The function
then stores the return value into that memory area.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux