Florian Klämpfl wrote:
Am 19.08.2013 10:37, schrieb Sven Barth:
Adding a new platform to FPC is not cheesecake and you should know how
the compiler's backend work. Just looking at the output of a target
won't help you!

I'd hope that Paul isn't naive enough to make that mistake :-) On the other hand, looking at how something like the MIPS compiler was put together could probably be useful.

A good start is aarch64: I tried to work in it as structured as possible
to make it some draft for porting, so have a look at the history of
fpc/compiler/aarch64 so you know how to start.

Thanks for that, noted. Going back to some of Paul's points though: one thing he's asking is how to get the fundamental hooks added to the invariant part of FPC to allow the target-specific stuff to be put in its own directory. What's best here: for developers to have their own subversion (or equivalent) servers, or for a sandbox to be set up on the public FPC SVN server?

Apropos Paul's comments of doing a good cross-reference and handling compiler directives, I think the thing that is likely to give real problems is the {$if defined() } form... I suppose that it would, at a pinch, be possible to reconstitute the used source from assembler output (-al -s options) but it's the worst kind of hack.

program testpreproc;

const   a= 1;

var     b: integer;

begin
{$if defined(a) }
  b := 1
{$else }
  b := 2
{$endif }
end.

# [5] var.b: integer;
# [7] begin
# [11] b := 2
# [13] end.
# [15]

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

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to