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