diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.md | 5 |
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" |