[fpc-devel] register / ABI for constructor and destroy
Martin
fpc at mfriebe.de
Sat Oct 14 14:36:50 CEST 2017
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.
More information about the fpc-devel
mailing list