This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch for exception handlers in PIC code on ARM
On Sun, Jan 14, 2001 at 05:23:12PM +0000, Richard Earnshaw wrote:
> If we are even using builtin_setjmp (and I don't think that we are, since
> I don't recall adding anything to support it, though it may be automatic)
> then unless it saves all the call-saved registers, it isn't implementing
> setjmp semantics. After all, setjmp/longjmp are supposed to save/restore
> all call-saved registers before returning control to the setjmp caller.
Correct, __builtin_longjmp does not implement normal longjmp
semantics. We do not restore any registers during the transfer
except the stack pointer and frame pointer.
So the builtin_longjmp_receiver part of the patch *is* needed.
I wouldn't think the exception_receiver part is, since dwarf2
does restore call-saved registers during unwinding.
r~