[fpc-pascal]1st post

Peter Vreman peter at freepascal.org
Thu Jun 17 07:50:25 CEST 2004

> Hello,
> Thanks for the quick answers.
> Peter Vreman a écrit :
>> > 2) " end [ {$IFNDEF REGCALL} 'eax','ecx', {$ENDIF} 'edi']; "
>> > Is the previous line meaningful? (See the routine below)
>> No, FPC 1.9.x follows standard calling conventions. The changed
>> registers
>> are fixed. This information is not used for assembler procedures. But
>> for
>> assembler blocks within a procedure the information is used.
> With "standard calling conventions", do you mean I have to write
> code like with Delphi (push/pop ebx,edi,esi)? Yesterday, I spent all
> day long to remove all these push/pop :-)

FPC is delphi compatible with it's calling conventions on i386.

> Should I also write push/pop for eax,ecx,edx when REGCALL is not
> defined?

See remark above. There is no difference with delphi anymore. Also note that
the REGCALL define is unsupported. It is only a temporary define used
internally for bootstrapping a 1.9.x compiler. It'll be removed without
notice in the development series after 2.0.

More information about the fpc-pascal mailing list