Dan Sugalski <[EMAIL PROTECTED]> wrote: > If we go MMD all the way, we can skip the bytecode->C->bytecode > transition for MMD functions that are written in parrot bytecode, and > instead dispatch to them like any other sub.
Not really. Or not w/o significant overhead for MMD functions implemented in C. Opcodes like C<invoke> that branch somewhere have a special treatment in the JIZ (and other) run cores. These instruction are a branch source, the next instruction is a branch target. This means that all CPU registers must be flushed to Parrot's register file and reloaded on the next instruction. Prederefed run core have to recalulate their program counter relative to the prederefed code. So I'd rather not do that. I expect most of the functions being executed are implemented in C and not in PASM/PIR. Operator overloading has to have some cost :) leo