[fpc-devel] The 15k bounty: Optimizing executable speed for Linux x86 / LLVM

Sven Barth pascaldragon at googlemail.com
Sun Oct 28 12:49:43 CET 2018

Simon Kissel <simon.kissel at nerdherrschaft.com> schrieb am So., 28. Okt.
2018, 12:39:

> Hi Ben,
> >  There's one more problem I forgot to mention in my first post, and it is
> >  probably a deal breaker for the original bounty: LLVM does not support
> >  Borland's fastcall calling convention for i386. So you would need to add
> >  support for Borland fastcall on i386 to LLVM if it has to support
> >  existing i386 inline assembly routines written for FPC/Delphi.
> I don't see how not supporting fastcall would be a deal-breaker?

You mean Jonas here I take it, not Ben.

Borland's Fastcall is more famously known as the Register calling
convention aka the default calling convention in Object Pascal. As you
admitted in your mail further down you have quite some assembly code and as
such you rely on the calling convention for parameter passing. Here
register differs significantly from cdecl or stdcall. Thus not supporting
the calling convention *will break* your code.

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

More information about the fpc-devel mailing list