Jeff Clites <[EMAIL PROTECTED]> wrote: >> OTOH it doesn't really matter, if the context structure is in the >> frame too. We'd just need to skip that gap. REG_INT(64) or I64 is as >> valid as I0 or I4, as long as it's assured, that it's exactly >> addressing the incoming argument area of the called function.
> A problem with this is that you can't be sure that you can actually > have the "next" frame of registers adjacent to the current frame--they > might already be taken. Imagine A calls B, then B creates a > continuation and stores it in a global, then returns. Please read the proposal summary by Miroslav Silovic, keyword "watermark". If frames aren't adjacent, normal argument copying can be done anyway. > Keep the old-scheme registers inside the interpreter structure, *as > well as* the new indirect registers. Call the registers in the > interpreter I0 to I31, and the indirect registers I32 to whatever. That would need two different addressing modes depending on the register number. That'll lead to considerable code bloat: we'd have all possible permutations for direct/indirect registers. Doing it at runtime only would be a serious slowdown. It's not needed. I've a better scheme in mind, which addressess efficieny as well as argument passing. leo