junkoi wrote:
> Hi,
>
> I have some expermentals with -mregparm option of gcc. I compile my
> code (16bit, if that matters) like this
>
> gcc -mregparm=2 ...
>
> So I expect that the first 2 param of a function is transferred in EAX
> and EDX, and from the 3rd params onward the params are put in stack.
> So for example calling "function(x,y,z,v)" should put "z" and "v" in
> stack.
>
> But by disassembling my gcc-generated code, I surprised to see that it
> uses ECX for the 3rd param, and only from 4th param it uses stack. So
> in the above example, only "v" is in stack, but not "z" as expected (z
> is in ECX!!). How is that possible??
>
Probably because anything but -mregparm=0 and -mregparm=3 gets virtually
zero testing.
-hpa


|