Dan Sugalski wrote:In that case I won't worry about it, and I think I know what I'd like to do with the interpreter, the register frame, and the register backing stack. I'll muddle it about some and see where it goes.
JIT/i386 is up to date now that is: it doesn't do any absolute register addressing anymore.
So what next:
* deprecate the usage of allmost all register stack push and pops?
I think we don't need them anymore. Register preservering is done as part of the call sequence. The only ops needed are IMHO: saveall/restoreall to support stack calling conventions. The question is: is saveall supposed to copy registers or just prepare a fresh set of registers.
* remove the {push,pop}{top,bottom}{i,s,p,n} opcodes from tests
* implement the new indirect register frame
I think the next steps are:
1) Implement the new indirect register frame
2) Note in the calling conventions that saving and restoring the top register set isn't required
3) Get IMCC to skip the save/restore set
and we see where we go from there. I'm not inclined, yet, to drop the register stacks and the push/pop ops as there are certainly times when it's useful, being a quick way to spill and unspill a set of registers for a basic block.
--
Dan
--------------------------------------it's like this------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk