diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/postreload.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9481c89..5ed0231 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-11-16 Andreas Schwab <schwab@linux-m68k.org> + PR rtl-optimization/46395 + * postreload.c (reload_combine): Invalidate register use + information on all control flow insns. + * config/m68k/m68k.c (m68k_delegitimize_address): Also expect LABEL_REF in UNSPEC operand. diff --git a/gcc/postreload.c b/gcc/postreload.c index 1fc9bfc..4d3bae4 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -1354,8 +1354,8 @@ reload_combine (void) } } - else if (JUMP_P (insn) - && GET_CODE (PATTERN (insn)) != RETURN) + + if (control_flow_insn_p (insn) && GET_CODE (PATTERN (insn)) != RETURN) { /* Non-spill registers might be used at the call destination in some unknown fashion, so we have to mark the unknown use. */ |