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

Bernd Oppolzer bernd.oppolzer at t-online.de
Sun Sep 1 16:47:44 CEST 2013

Am 01.09.2013 16:12, schrieb Jonas Maebe:
>> So my question is: is it possible to modify the outcome of step 2 (the linear
>> assembler representation) depending on the target platform
> The linear assembler representation is already 100% platform-specific (as Sven mentioned above). FPC does not have a platform-independent internal RTL (register transfer language) representation.
Thank you.

So my assumptions so far were plain wrong.

The difference between platforms is already in the stages above stage 2.

That is (cited from Sven's mail):

Also the compile process of FPC is roughly this:
- for each used unit:
     - parse the unit and generate a node tree for each 
procedure/function/method (basically platform independant)
     - generate a CPU specific linear assembler representation of each 
node tree (this representation is independant of the specific assembler 
     - if an external assembler (e.g. GNU as) is used: convert the 
assembler lists to assembler files
     - call the assembler (internal assemblers work on the assembler 
lists directly) to generate the object file
- for external linkers (e.g. GNU ld): write a linkscript to instrument 
the external linker
- call the linker (internal linkers work directly on the in memory 
information the compiler has gathered)

only the first step - node tree - is platform independant, and
the translations from there is already CPU specific - oh, I see,
it's written there - I looked at the word "independant" in the 
paranthese - my fault ...

Sorry for that ...

Then the main effort is to understand what the contents of the node tree 
and to build another variant of step 2 (for z-Arch).

Kind regards


More information about the fpc-devel mailing list