[fpc-devel] Successful implementation of inline support for pure assembler routines on x86

Sven Barth pascaldragon at googlemail.com
Fri Mar 15 14:37:48 CET 2019

J. Gareth Moreton <gareth at moreton-family.com> schrieb am Fr., 15. März
2019, 12:33:

> P.S. Though this feature can be used for implementing intrinsics, it is
> not a direct replacement for them because instructions like SHUFPS cannot
> be flexibly encoded due to its immediate operand (i.e. it has to be a raw
> number... it can't take its value from a parameter).

That could maybe be managed once the support for constants as parameter for
generics is added (note: I don't know right now how SHUFPS works, so take
the following as pseudo code):

=== code begin ===

generic function ShufPS<const N: Integer>(aArg: Whatever): Whatever; inline;
    SHUFPS %xmm1, %xmm2, N

=== code end ===

As long as the assembler reader correctly handles constants for those
parameters this could work as for each N the compiler creates a new


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20190315/272ffbef/attachment.html>

More information about the fpc-devel mailing list