Jason Gloudon wrote:
On Mon, Mar 03, 2003 at 01:07:36PM +0000, Piers Cawley wrote:
> > I think you're overlooking the "restoreall" done just before the > > jump-no-save-returnaddress operation... I see two "saveall"s and > > two "restoreall"s. > > But with proper tail call optimization you'd only need *one* > saveall. That's why it's an optimization.
Tail call optimization is a space (stack size) optimization. The scheme definition only requires space efficiency. The time optimization is important but a secondary consideration for the functional language folks.
Here's an idea -- considering that the first op of every sub seems to be a 'saveall' instruction,
If that's true, we need to thump IMCC some. There's no reason for this to be the first op--if the caller wanted any registers saved it had darned well beter have taken care of it itself. That's the point of caller-save, after all...
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk