It says here that setjmp can be used to make coroutines:
http://my.execpc.com/~geezer/osd/tasks/index.htm
On Feb 16, 2008, at 3:29 AM, Lluís Batlle wrote:
Talking about The Art of Computer Programming... this non-stack based
calling convention made me think of Knuth's Coroutines. I'm quite
interested on them, but although I've seen libraries for managing
them, I've never seen a real useful program based on them. I think
they could be used with advantages over the thread or normal function
call abstractions.
Maybe someone in this list can provide a good example of coroutines
use?
2008/2/16, Paweł Lasek <[EMAIL PROTECTED]>:
I don't have latest version of fascicle one (MMIX processor
architecture and MMIXAL assembler language, from new version of The
Art of Computer Programming) at hand, so I can't confirm it, but I
remember that MMIX had a special register which implemented a
"border", shifting register numbers to use them for procedure data
separation.
And as in all RISC architectures, storing as many parameters in the
call stack is the way to go. Especially when you have 256 64-bit
general purpose registers :-) (Now if only someone implemented a sane
architecture using MMIX as main processor...)
On 2/16/08, Pietro Gagliardi <[EMAIL PROTECTED]> wrote:
- DOS interrupt function calls use the registers, not the stack.
- SPARC and MIPS registers are provided to pass parameters.
On Feb 15, 2008, at 6:37 PM, Lyndon Nerenberg wrote:
The calling conventions I have seen are the ccall, stdcall
(Windows' slightly modified version of the ccall), and pascal. All
of them push parameters on the stack.
Take a look at the R-call and S-call conventions used on the IBM
System 360 architecture. These machines didn't even have a stack.
--lyndon
--
Paul Lasek