Steve Fink <[EMAIL PROTECTED]> wrote:

> That is working for me now for the parameter passing, but not for
> return values.

As Melvin said, you are still mixing calling conventsion. *But* return
conventions are currently only prototyped. We don't have any syntax yet
to denote the desired behavior.

I'm still waiting on design documents about unification of call and
return conventions.

IMHO the whole PCC stuff needs some tweaking. Argument passing/param
binding and return value passing/result binding seem to be almost the
same to me. Though the former has some more variants like r/o, copy, by
ref, whatever.

The whole Ix register usage for prototyped calls seems rather unneeded
to me. When both sides know, how they pass params and return values,
there is no need for additional information. Depending on the run core,
there can be significant (--profile shows one third of execution time in
the fibonacci benchmark) overhead for register setup. For JIT this boils
down to nothing though.

Then we need some means to define and lookup function signatures for
library code. When HLLs should finally be able to use any library of all
HLLs that use Parrot, these libaries have to specify their interfaces.

Prototyped and non-prototyped are two different ways to call a function
(or return some values). But these are known ways. We might have
additionally the case, that a function is called either way.

leo

Reply via email to