On Oct 20, 2004, at 12:09 PM, Leopold Toetsch wrote:

Dan Sugalski wrote:
'Kay, now I'm confused. I thought we were talking about removing the registers from out of the interpreter structure, which'd leave us needing two pointers, one for the interpreter struct and one for the registers.

Ok, short summary of future layout of JIT regs:

item                PPC               i386
------------------------------------------------
interpreter         r13               -16(%ebp)
frame pointer       r16                %ebx

Register addressing is done relative to the frame pointer, which will be in a register. The interpreter isn't used that often inside integer JIT code, so it isn't in an register in i386 but is easily reloaded into one.

Currently the frame pointer and the interpreter are the same.

Just to clarify: This is the approach wherein each frame gets a fresh set of registers, and function call and return (or continuation invocation) copy the relevant registers between the register sets? And this isn't quite the scheme from the "towards a new call scheme" thread, in which we'd be duplicating the interpreter context for each frame, right? (And the latter was what you did in "Proof of concept - hack_42 (was: the whole and everything)", right?)


Just trying to sort out all of the ideas.

JEff



Reply via email to