What're we looking at for performance impact on mops.pasm and the other simple benchmarks?
I've now JITted mops.pasm (and other code) running with indirect register access. It did slow down, but not because the additional indirection (all inner loop code is still in registers), its's because of the darned alignment problem on my old Athlon.
Due to the indirect register addressing, the code is a bit longer now, which moved the loop to <jit_func + 190>. Rearranging the initialization code (using shorter instructions) brought the loop to <jit_func+162>, where it's executing as fast as before.
parrot -C mops.pasm runs (unoptimized build) still at 82.7 MOPS on my 800 Mhz - no remarkable slowdown to 83.0 w/o indirection. Perl and Python are at 2 MOPS for that benchmark - raw execution speed (opcode dispatch) isn't a problem.
leo