diff options
author | Sa Liu <saliu@de.ibm.com> | 2007-08-12 18:08:43 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2007-08-12 18:08:43 +0000 |
commit | 1c7f7c66f8910224dcc3caf27b72dcda8d2db34d (patch) | |
tree | ca64e1194693fa8489d361d0365367d08ffbd579 | |
parent | 5920daabcee046cd9d77d089635eaa77065e5035 (diff) | |
download | gcc-1c7f7c66f8910224dcc3caf27b72dcda8d2db34d.tar.gz |
emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note and with REG_RETVAL note after split.
2007-08-12 Sa Liu <saliu@de.ibm.com>
* emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
and with REG_RETVAL note after split.
From-SVN: r127376
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 14 |
2 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5434dc96578..671afbf639f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-08-12 Sa Liu <saliu@de.ibm.com> + + * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note + and with REG_RETVAL note after split. + 2007-08-11 David Daney <ddaney@avtrex.com> * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index f1b1990eeac..e9e651f23ce 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3134,7 +3134,7 @@ try_split (rtx pat, rtx trial, int last) rtx before = PREV_INSN (trial); rtx after = NEXT_INSN (trial); int has_barrier = 0; - rtx tem; + rtx tem, note_retval; rtx note, seq; int probability; rtx insn_last, insn; @@ -3270,6 +3270,18 @@ try_split (rtx pat, rtx trial, int last) break; #endif + case REG_LIBCALL: + /* Relink the insns with REG_LIBCALL note and with REG_RETVAL note + after split. */ + REG_NOTES (insn_last) + = gen_rtx_EXPR_LIST (REG_LIBCALL, + XEXP (note, 0), + REG_NOTES (insn_last)); + + note_retval = find_reg_note (XEXP (note, 0), REG_RETVAL, NULL); + XEXP (note_retval, 0) = insn_last; + break; + default: break; } |