bfin.md (eh_return): Call emit_jump_insn instead of emit_insn to emit eh_return_inter...
authorJie Zhang <jie.zhang@analog.com>
Thu, 12 Oct 2006 08:52:58 +0000 (08:52 +0000)
committerJie Zhang <jiez@gcc.gnu.org>
Thu, 12 Oct 2006 08:52:58 +0000 (08:52 +0000)
* config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
emit_insn to emit eh_return_internal instruction.
(eh_return_internal): Explicitly set pc.

From-SVN: r117662

gcc/ChangeLog
gcc/config/bfin/bfin.md

index 6fd39c76efdf61131c552c14b6c7c6172fa8ccdd..4edb41e588ed18589b4270aa4d05b0a07a8f6b70 100644 (file)
@@ -1,3 +1,9 @@
+2006-10-12  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
+       emit_insn to emit eh_return_internal instruction.
+       (eh_return_internal): Explicitly set pc.
+
 2006-10-11  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/28230
index 03747e8c85f5f7c9d47622459517ac19b2bdd783..425f99580c7a3eb177cccc5c6787388327f1768e 100644 (file)
   ""
 {
   emit_move_insn (EH_RETURN_HANDLER_RTX, operands[0]);
-  emit_insn (gen_eh_return_internal ());
+  emit_jump_insn (gen_eh_return_internal ());
   emit_barrier ();
   DONE;
 })
 
 (define_insn_and_split "eh_return_internal"
-  [(unspec_volatile [(reg:SI REG_P2)] UNSPEC_VOLATILE_EH_RETURN)]
+  [(set (pc)
+       (unspec_volatile [(reg:SI REG_P2)] UNSPEC_VOLATILE_EH_RETURN))]
   ""
   "#"
   "reload_completed"