2007-08-12 Sa Liu <saliu@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Aug 2007 18:08:43 +0000 (18:08 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Aug 2007 18:08:43 +0000 (18:08 +0000)
       * 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
gcc/emit-rtl.c

index 5434dc9..671afbf 100644 (file)
@@ -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
index f1b1990..e9e651f 100644 (file)
@@ -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;
        }