[fpc-pascal] LLVM Backend Support
Jonas Maebe
jonas.maebe at elis.ugent.be
Fri Aug 19 14:43:40 CEST 2016
marcov wrote on Fri, 19 Aug 2016:
> In our previous episode, Jonas Maebe said:
>> Another, more important, issue is that the LLVM-based compiler also
>> includes the regular code generator for the targeted architecture (to
>> generate entry and exit code for pure assembler routines).
>
> FYI, I've been creating some SSE image conversion routines in Delphi/FPC
> (FPC for avx) the last few days, and I noticed that Delphi allows something
> like that too for 64-bit. (That being generating entry and exit code for
> asm code)
>
> It has pseudo directives to push registers on entry, allowing it
> to create a stack frame (aligned, with SEH record).
>
> There are four functions:
>
> .noframe - omit stackframe (our nostackframe)
[snip]
That's a bit different. I was talking about the entry and exit code
for a pure assembler routine based on e.g. declared local variables
and types of the parameters, which was done already even by Turbo
Pascal. That has to be done even when using an LLVM code generator,
since pure assembler routines are not touched by the LLVM-to-native
passes that come after.
The directives you mention are extra features to influence the kind of
entry/exit code to generate for assembler routines (which we indeed
don't have yet).
Jonas
More information about the fpc-pascal
mailing list