[fpc-devel] Re. z370 Cross Compilation, Pass 2 of ....

Mark Morgan Lloyd markMLl.fpc-devel at telemetry.co.uk
Sun Sep 1 19:49:52 CEST 2013

Bernd Oppolzer wrote:

> That's what the existing compilers on z-Arch normally do - they don't
> compile the PUSH instructions one by one as in the first example, but in 
> contrast,
> as there are no PUSH/POP instructions provided by the hardware, they do 
> some efforts
> to do at least only one increment to the stack pointer (like outlined 
> above) which
> is done in the procedure or function prologue.
> Now my question is:
> do you think that this is a major problem for a FPC port to z-Arch?

No, but it's important to adhere to the calling conventions for the 
various target operating systems. As a particular example, on Linux 
compiled code /has/ to be able to link (statically or dynamically) to 
libraries such as the resolver that maps computer names to IP addresses.

> Are my assumptions right so far?

I think so. The important thing is that Pascal mandates a stack due to 
the prevalence of recursion, and (in the case of Linux) the ABI 
specifies a combined parameter/return-address stack. The question at 
this point is obviously what registers the ABI reserves as stack and 
frame pointers.

> Should we start with an easy solution and check the performance 
> implications later?
> Maybe there is a clever solution to that ...

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the fpc-devel mailing list