On 29 Oct 2013, at 14:35, Michael Van Canneyt wrote:
On Tue, 29 Oct 2013, Jonas Maebe wrote:
I think they use "evaluation order" as a synonym for "parameter
passing order" on that page, given the table below: it says that
the order in which the parameters are passed for register/pascal is
undefined. That basically means that pure assembler routines using
the register or pascal calling conventions are no longer supported
in Delphi, since you can't know how the parameters are passed (or
at least there are no guarantees about it).
Probably a consequence of their adding a new llvm backend
architecture.
I also thought that at first, but on the other hand LLVM doesn't have
any built-in support for "a calling convention that passes parameters
in registers whereby the callee is responsible for the stack cleanup",
and yet Embarcardero still advertises the "register" calling
convention as doing exactly that (I guess as an alternative for
"pascal", they can use stdcall since that one also passes everything
on the stack and has callee-side cleanup iirc). If they added it
themselves in a private LLVM branch, I don't understand why they
didn't implement it in a way that was compatible with existing code.
Jonas
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal