<<So instead we drop the GP value into the builtin jmpbuf and have builtin_longjmp restore it directly. >> OK, in our original design we were intent on absolutely minimizing the setjmp time, so that is why we preferred to have the assembler reload the GP on the longjmp (also it kept things more target independent). But, indeed it works fine to include GP in the jmpbuf.