> > On 09 July 2007 20:48, Nicolas Alt wrote:
> >
> > > Hi!
> > >
> > > On the AMD64 / x86-64Bit architecture, some arguments of a functions
> > > are passed using registers, but there seem to be two different
> > > conventions out there. The standard ABI uses 6 registers, but
> > > Microsoft compilers use only 4. Because of that, code compiled with
> > > gcc cannot call code compiled with a MS compiler without an ugly
> > > wrapper.
> > >
> > > Have there been any efforts to make gcc do function calls the MS
way?
> > > I guess this would be an important feature for mingw on AMD64.
> >
> >
> > Does -mregparm=4 do what you want?
>
> Windows and GCC ABIs are on x86-64 more different than that (they was
> historically developed in parallel). GCC 4.3 will support attribute for
> this calling convention contributed by Kai Tiez and Richard Henderson,
> but before that there is not much to do...
Note: My name is Kai Tietz ;) not Tiez
I think, it isn't to hard introducing this attributes to the AMD64 abi's.
What names should we use for it? I suggest "x86_64_ms" and "x86_64_linux".
Is this ok for you.
Cheers,
i.A. Kai Tietz
| (\_/) This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.
------------------------------------------------------------------------------------------
OneVision Software Entwicklungs GmbH & Co. KG
Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
Handelsregister: HRA 6744, Amtsgericht Regensburg
Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer:
Ulrike Döhler, Manuela Kluger