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

Reply via email to