On 07/12/2012 17:03, Jonas Maebe wrote:
On 07 Dec 2012, at 17:51, Martin wrote:
Does anyone know how self is passed on PPC or ARM?
On the one hand IRRC I read self is passed as additional param at the end of
the list.
I don't think that has ever been the case.
Ok then I IIRCed wrong...
But looking at intel code 32 bit, it looks like it always goes into EAX
(calling method register)
That is not true if the method is declared as cdecl or so.
"(calling method register)" (which I believe is default, if no
specification is made?
On Intel 64 bit it is RCX or RDI depending on it in Windows or not
What on the others, fixed register, or simply as if it was the last param?
It is *currently* (I don't think we specify anywhere how or in what order
hidden parameters are passed) always passed as the first parameter. Whether
this is a register or a memory location depends on the architecture, ABI and
specified calling convention. On PPC resp. ARM this is always R3 resp. R0 with
the currently existing ABIs.
Oh ox, I IIRCed half right. "Always first" not "always last"
Thanks for the info.
Yes, I know that this is only the current version, and can change and
all the risk.
But today, there is no better way, to use PascalScript in a compiled
app. Once a released FPC offers a better way, well great. But till then,
I must go the risky way (or not go at all).
I have a testcase, that calls every function I use. So I can at least,
test (or ask people to test) with every new fpc version.
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel