From 048a46c2165a5e30f123dfc162507596778e7733 Mon Sep 17 00:00:00 2001 From: uweigand Date: Sun, 12 Aug 2007 18:08:43 +0000 Subject: [PATCH] 2007-08-12 Sa Liu * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note and with REG_RETVAL note after split. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127376 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5434dc9..671afbf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-08-12 Sa Liu + + * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note + and with REG_RETVAL note after split. + 2007-08-11 David Daney * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index f1b1990..e9e651f 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; } -- 2.7.4