[fpc-pascal] Constant parameters and double types

Luiz Americo Pereira Camara pascalive at bol.com.br
Thu Apr 10 04:10:29 CEST 2008


Luiz Americo Pereira Camara wrote:
> I'm evaluating the effect of passing function parameters by value or 
> by reference.
>
> Like stated in the documentation, passing as reference (const) or by 
> value types with size equal to pointer size like Integer has no 
> difference in the code output (they are passed by value).
>
> Also as expected i noticed a difference in the generated assembler for 
> types TRect (16bytes) or TPoint (8 bytes).
>
> But for double (8 bytes) the generated assembler are equal for both 
> types of parameters. Is this intentional? For double types, there's no 
> difference in using const modifier?
>
> I'm using a 32bit cpu.
>

I attached the source code of a small app and the asm output of the 
functions.

It seems that for double fpc pass by reference if the parameter is not 
assigned regardless of const modifier. Can someone confirm this?
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ConstDouble.txt
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20080409/a608aa56/attachment.txt>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: asmConstParameter.pas
Type: text/x-pascal
Size: 377 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20080409/a608aa56/attachment.pas>


More information about the fpc-pascal mailing list