summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/bfin/bfin.md5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6fd39c76efd..4edb41e588e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md
index 03747e8c85f..425f99580c7 100644
--- a/gcc/config/bfin/bfin.md
+++ b/gcc/config/bfin/bfin.md
@@ -2337,13 +2337,14 @@
""
{
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"
OpenPOWER on IntegriCloud