[fpc-devel] win64 calling convention

Jonas Maebe jonas.maebe at elis.ugent.be
Thu Nov 29 17:46:56 CET 2012


On 29 Nov 2012, at 17:21, Martin wrote:

> Just to confirm my observations. (again trying to get pascal script to work)
> 64 bit windows
> 
> procedure FOO(Sender: TSynEdit; const M: String; const P1, P2: TPoint);
> 
> "const P1, P2: TPoint" versus "P1, P2: TPoint"
> 
> if "const" is NOT used, then TPoint is put into a register
> if "const" is used, then TPoint is in mem, and the register is a reference.
> 
> Is that right?  (I know the doc says, no assumption, and can be ref or value)

And it can change at any time. Interfacing with such routines at the assembler level is simply not supportable in FPC code, and trying to do so anyway is guaranteed to only lead to much frustration. Either use constref (by reference) or a value parameter (by value).


Jonas


More information about the fpc-devel mailing list