Re-apply hopefully fixed patch:
authorJan Hubicka <jh@suse.cz>
Fri, 4 Jun 2004 16:07:58 +0000 (18:07 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 4 Jun 2004 16:07:58 +0000 (16:07 +0000)
* i386.md (UNSPECV_EH_RETURN): Kill.
(eh_return): Use jump_insn.
(eh_return_si, eh_return_di): Change pattern to jump instruction.

From-SVN: r82624

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

index ecd7e0dae95903b61831fd9d32544548c3aed97a..4c04a272dcd8993ec8dd1300d41739bfc9de67f6 100644 (file)
@@ -1,3 +1,10 @@
+2004-06-04  Jan Hubicka  <jh@suse.cz>
+
+       Re-apply hopefully fixed patch:
+       * i386.md (UNSPECV_EH_RETURN): Kill.
+       (eh_return): Use jump_insn.
+       (eh_return_si, eh_return_di): Change pattern to jump instruction.
+
 2004-06-04  Jeff Law  <law@redhat.com>
 
        * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
index 270168ff75b9421df6c714cf0ef0a6bbc05789f6..770a7afe20defea89531f2aa6773a823fb2e486f 100644 (file)
 
    ; REP instruction
    (UNSPEC_REP                 75)
+
+   (UNSPEC_EH_RETURN           76)
   ])
 
 (define_constants
   [(UNSPECV_BLOCKAGE           0)
-   (UNSPECV_EH_RETURN          13)
    (UNSPECV_EMMS               31)
    (UNSPECV_LDMXCSR            37)
    (UNSPECV_STMXCSR            40)
   emit_move_insn (tmp, ra);
 
   if (Pmode == SImode)
-    emit_insn (gen_eh_return_si (sa));
+    emit_jump_insn (gen_eh_return_si (sa));
   else
-    emit_insn (gen_eh_return_di (sa));
+    emit_jump_insn (gen_eh_return_di (sa));
   emit_barrier ();
   DONE;
 })
 
 (define_insn_and_split "eh_return_si"
-  [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")]
-                   UNSPECV_EH_RETURN)]
+  [(set (pc) 
+        (unspec [(match_operand:SI 0 "register_operand" "c")]
+                UNSPEC_EH_RETURN))]
   "!TARGET_64BIT"
   "#"
   "reload_completed"
   "ix86_expand_epilogue (2); DONE;")
 
 (define_insn_and_split "eh_return_di"
-  [(unspec_volatile [(match_operand:DI 0 "register_operand" "c")]
-                   UNSPECV_EH_RETURN)]
+  [(set (pc) 
+        (unspec [(match_operand:DI 0 "register_operand" "c")]
+                UNSPEC_EH_RETURN))]
   "TARGET_64BIT"
   "#"
   "reload_completed"