Hi Stefan, On Fri 11 May 2012 22:29, Stefan Israelsson Tampe <[email protected]> writes:
> 1. What about growing stacks any coments if they will be easier to manage > for this setup. Can one copy the C stack logic? Having a fixed-size frame means that it's easier to have disjoint stacks, since a register VM addresses operands relative to the frame pointer and not the stack pointer. I hope to be able to decrease our default stack size, and allow it instead to grow dynamically. > 2. Is there an instruction that does what call does but can be used for tail > call's > when it needs it e.g. the code > for (n = 0; n < nargs; n++) > LOCAL_SET (n, old_fp[ip[4 + n]]); > that is missing for the tail code This is another advantage of wip-rtl. In it, the compiler is responsible for shuffling tail arguments. It can do a parallel move possibly without shuffling args to the top of the stack. Then tail-call just sets a new procedure and jumps to its entry. > 3. I would appriciate if the frame is always below say 256 SCM:s of the fp > stack limit > that way when preparing tail calling one doesn't usally need to check if the > argument fit's > when issuing a tail call. See above :) > 4. I think the logic code hook I recently investigated could easily fit into > this VM engine with > using similar techniques as I described in previous mails. I'm still working back through the mails; remind me again if it seems I overlooked this mail. Cheers, Andy -- http://wingolog.org/
