[fpc-devel] RTTI method paramlist broken?

Mattias Gaertner nc-gaertnma at netcologne.de
Sat Sep 12 11:49:27 CEST 2009


On Sat, 12 Sep 2009 11:25:02 +0200
Jonas Maebe <jonas.maebe at elis.ugent.be> wrote:

> 
> On 12 Sep 2009, at 11:20, Mattias Gaertner wrote:
> 
> > It seems the order of parameters in the RTTI is different for 2.5.1
> > on x86_64.
> > On i386 it is still the same as 2.2.5.
> >
> > I didn't find a flag telling me what order the RTTI is using.
> >
> > Is this a bug, a feature, will i386 follow?
> 
> I guess it's because of this:
> 
> r12891 | jonas | 2009-03-15 11:38:40 +0100 (Sun, 15 Mar 2009) | 5
> lines Changed paths:
>     M /trunk/compiler/ncgrtti.pas
>     M /trunk/compiler/pdecsub.pas
>     M /trunk/compiler/symconst.pas
> 
>    * removed any use of pushleftright_pocalls for non-i386
> platforms, since
>      they always use the same parameter pushing order
>    * define the pushleftright_pocalls constant only for i386 so it  
> cannot
>      be accidentally used anymore for other platforms
> 
> The parameter order was simply wrong in the rtti for x86_64, afaik.  
> For i386, the parameter order depends on the used calling convention  
> (and this was used correctly for the rtti), but other architectures
> it does not (while the rtti claimed otherwise).

Thanks.
I reverse the order now for non i386 and fpc 2.5+.
Is this changed in the 2.4 too?

Mattias



More information about the fpc-devel mailing list