> -----Original Message-----
> From: Leopold Toetsch [mailto:[EMAIL PROTECTED]
>
> Does a couroutine end? And how?
> The current implementation jumps forth and back by the B<invoke> opcode,
> one is a "call coroutine" the other is a "yield". There seems to be no
> possibility, that the coroutine states, "I'm finished now" - with
> possibly meaning "don't call me again".

That's correct.

> And from imcc's register allocations POV the whole coroutine stuff is a
> PITA, no registers are preserved, AFAIK, so a coroutines and the caller
> + all edges out from both do share the same registers, don't they?

They do, except that each coroutine has its own user stack so saveall and
restoreall can work properly.

-- jonathan sillito

Reply via email to