On 10/17/14 08:08, Evgeny Stupachenko wrote:
Hi,

The patch fixes 1st fail in darwin bootstarp.
When PIC register is pseudo we don't need to init it after setjmp or
non local goto.

Is it ok?

ChangeLog:

2014-10-17  Evgeny Stupachenko  <evstu...@gmail.com>

         PR target/63534
         * config/i386/i386.c (builtin_setjmp_receiver): Delete.
         (nonlocal_goto_receiver): Ditto.

Why do you think they're not needed? The builtin setjmp/longjmp implementation do not behave like what you're used to in the C library. Specifically, they do not save/restore register state beyond SP, FP and possibly ARGP.

So let's take one step back -- what precisely about these patterns was causing a problem? My initial inclination is that we must set the PIC register here in the same manner as it's set in the prologue.



Jeff

Reply via email to