diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4fd75541c71..199990f22eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-10-08 Nathan Froyd + + * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define. + * config/fr30/fr30.md (leave_func): Rewrite without post_inc. + 2010-10-08 Nathan Froyd * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define. diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c index 118de0afd5b..4700195f281 100644 --- a/gcc/config/fr30/fr30.c +++ b/gcc/config/fr30/fr30.c @@ -172,6 +172,9 @@ static void fr30_trampoline_init (rtx, tree, rtx); #undef TARGET_TRAMPOLINE_INIT #define TARGET_TRAMPOLINE_INIT fr30_trampoline_init +#undef TARGET_EXCEPT_UNWIND_INFO +#define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info + struct gcc_target targetm = TARGET_INITIALIZER; diff --git a/gcc/config/fr30/fr30.md b/gcc/config/fr30/fr30.md index fa115c4cfa1..4cc9765fd1d 100644 --- a/gcc/config/fr30/fr30.md +++ b/gcc/config/fr30/fr30.md @@ -1203,8 +1203,8 @@ ) (define_insn "leave_func" - [(set (reg:SI 15) (reg:SI 14)) - (set (reg:SI 14) (mem:SI (post_inc:SI (reg:SI 15))))] + [(set (reg:SI 15) (plus:SI (reg:SI 14) (const_int 4))) + (set (reg:SI 14) (mem:SI (minus:SI (reg:SI 15) (const_int 4))))] "reload_completed" "leave" )