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
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
>>-----Original Message-----
>>From: Leopold Toetsch [mailto:l...@toetsch.at]
>
>>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.
Yep. But due to that fact, passing arguments via stack is not possible.
So a HL can only communicate with a coroutine through lexcicals or
globals. And imcc will need another set of hints to figure out what's
going on.
> -- jonathan sillito
leo