On Fri, Jul 19, 2013 at 11:00 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Fri, Jul 19, 2013 at 04:56:47PM +0200, Uros Bizjak wrote: >> > OK for trunk? >> >> Assuming that Jakub is OK with the patch, it is OK for trunk. > > With the line wrapping fix and Uros' suggested improvement this is ok for > both trunk and branches.
Can you please also consider attached patch? There is no need to drag around an UNSPEC if we don't need it anymore. Attached patch marks instruction as deleted in this case. The patch was tested by looking at the generated code from various testcases in the PR. Uros.
Index: i386.md =================================================================== --- i386.md (revision 201091) +++ i386.md (working copy) @@ -16233,12 +16233,7 @@ (define_insn_and_split "nonlocal_goto_receiver" [(unspec_volatile [(const_int 0)] UNSPECV_NLGR)] "TARGET_MACHO && !TARGET_64BIT && flag_pic" -{ - if (crtl->uses_pic_offset_table) - return "#"; - else - return ""; /* No pic reg restore needed. */ -} + "#" "&& reload_completed" [(const_int 0)] { @@ -16258,6 +16253,10 @@ xops[2] = gen_rtx_CONST (Pmode, tmp); ix86_expand_binary_operator (MINUS, SImode, xops); } + else + /* No pic reg restore needed. */ + emit_note (NOTE_INSN_DELETED); + DONE; })