[Gc] Re: Saving all register of Boehm's Stop-World of hypermodern i686, is it reliable?

Bruce Hoult bruce at hoult.org
Sun Feb 11 15:32:56 PST 2007


On 2/12/07, Hans Boehm <Hans.Boehm at hp.com> wrote:
>
> I think setjmp implementations generally have two choices:
>
> 1) Save the callee-save registers in the buffer.  Longjmp restores the
> state.

OK, that's all I've seen.  Good to know there aren't known holes in it.


> 2) Save little more than the position on the stack in the buffer.  Longjmp
> unwinds the stack, restoring callee-saves registers as it goes.
>
> (Type 2 implementations probably perform better, since they do less
> work in setjmp, but can't handle certain kinds of (ab)uses.)

Right.  I do some of those :-)

setjmp on Windows is type 1, but the longjmp is kind of is a bit of a
mixture as it also walks the stack calling destructors (or something)!
 Which screws up some of the (ab)uses as well.


More information about the Gc mailing list