[m-dev.] diff: runtime/engine.h

Fergus Henderson fjh at cs.mu.oz.au
Sat Aug 2 19:05:27 AEST 1997


Simon Taylor, you wrote:
> Hi Fergus,
> 
> > I think not saving/restoring r1, r2, ... is potentially dangerous.  
> > The caller may be assuming that r1, r2, ... are still valid.
> > 
> > Also, you need to call save_registers() and restore_registers(),
> > not save/restore_transient_registers(), because longjmp() can
> > clobber all of them, not just the "transient" (register window) ones.
> > 
> 
> Is this better?

Possibly.  I'm still a bit concerned about the safety of the
assumptions regarding r1, r2, ...
The code does not document when they are assumed to be valid
and when they are not, and thus verifying that the are indeed
valid at the points where they are assumed to be valid is
difficult.

Anyway, I'm off skiing until Thursday, just telling you this to
give you something to think about for a few days.  We can perhaps
discuss it in more detail when I get back.

Cheers,
	Fergus.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3         |     -- the last words of T. S. Garp.



More information about the developers mailing list