Re: -mregparm on gcc doesnt work correctly?
- From: "H. Peter Anvin" <spamtrap@xxxxxxxxxx>
- Date: Mon, 31 Mar 2008 04:30:05 -0700
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
.
- References:
- -mregparm on gcc doesnt work correctly?
- From: junkoi
- -mregparm on gcc doesnt work correctly?
- Prev by Date: Re: good disassembler for mixed 16bit and 32bit code?
- Next by Date: Re: int 0x13 utility
- Previous by thread: -mregparm on gcc doesnt work correctly?
- Index(es):
Relevant Pages
|