]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.md (nonlocal_goto_receiver): Delete insn if it is not needed after split.
authorUros Bizjak <ubizjak@gmail.com>
Mon, 22 Jul 2013 08:27:25 +0000 (10:27 +0200)
committerIain Sandoe <iains@gcc.gnu.org>
Mon, 22 Jul 2013 08:27:25 +0000 (08:27 +0000)
gcc/

2013-07-22  Uros Bizjak  <ubizjak@gmail.com>

* config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
it is not needed after split.

From-SVN: r201118

gcc/ChangeLog
gcc/config/i386/i386.md

index 87c07baf7dcb24138d6a3d40687e310ca453d7d8..f0260dd43925dcbc1b9794b146c96ea079c8c792 100644 (file)
@@ -1,3 +1,8 @@
+2013-07-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
+       it is not needed after split.
+
 2013-07-20  Iain Sandoe  <iain@codesourcery.com>
 
        PR target/51784
index a4778fed1a9d8a46746a054e641de861ea7d863f..c67ed31923e416a5753f23ba3d7dbad5f25eae6e 100644 (file)
 (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)]
 {
       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;
 })