This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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~

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]