I am trying to update pascal script.
It seems that at some time there where changes in the register usage for
calling constructors.
At least I found the following code:
{$IF DEFINED (fpc) and (fpc_version < 3)}
if IsConstructor or IsVirtualCons then
tbtu32(res.dta^) := RealCall_Register(Address, EDX,
EAX, ECX,
@Stack[Length(Stack) - 3], Length(Stack) div 4, 4, nil)
else
{$IFEND}
tbtu32(res.dta^) := RealCall_Register(Address, EAX,
EDX, ECX,
@Stack[Length(Stack) - 3], Length(Stack) div 4, 4, nil);
Also which versions are affected?
My testing indicates that this may apply for 3.1 (trunk).
But 3.0.x seems to use the same as 2.x ?
And are other calls (maybe destructor) affected?
Or does destructor (or maybe virtual methods?) generally take a
different order than other methods.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel