Piers Cawley <[EMAIL PROTECTED]> wrote:
> Leopold Toetsch <[EMAIL PROTECTED]> writes:

>> Matt Fowles <[EMAIL PROTECTED]> wrote:
>>
>>> Thanks for the clear explanation.  I did not realize that S registers
>>> could switch pointers, that does make things a little harder.  I have
>>> a recommendation for a possible hybrid solution.  Incur the cost of
>>> spilling I,S,N registers heavily.  Restore the state of P register.
>>
>> My conclusion was that with the copying approach I,S,N registers are
>> unusable.

> But you only need to copy when the frame you're restoring is a full
> continuation

Yes. With the effect that semantics of I,S,N (i.e. value registers)
suddenly changes.

> I'd submit that, in the vast majority of cases you're not going to be
> dealing with full continuations, and on the occasions when you are the
> programmer using them will be aware of the cost and will be willing to
> pay it.

*If* the programmer is aware of the fact that a subroutine can return
multiple times, he can annotate the source so that a correct CFG is
created that prevents register reusing alltogether. The problem is
gone in the first place.

*If* that's not true, you'd get the effect that suddenly I,S,N registers
restore to some older values which makes this registers de facto unusable.

leo

Reply via email to