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".


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?

leo

Reply via email to