Works fine *except* for the .flatten_arg directive. This directive takes an argument array and expands the array contents to function arguments in consecutive parrot registers. E.g.
.arg a => P5 .flatten_arg array => P6, P7, ...
The code emitted to achieve that runs in a loop and is using the Parrot opcode C<setp_ind Ix, Py> which sets the xth Parrot register from Py.
Yep. The indirect access ops will cause problems for the PIR register allocation, since there's no way to know at compile time what's happening. Their use probably ought to invalidate all the registers, or the op restricted to pasm code.
--
Dan
--------------------------------------it's like this------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk