OSDN Git Service

* emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 26 Jun 2003 20:46:47 +0000 (20:46 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 26 Jun 2003 20:46:47 +0000 (20:46 +0000)
        instead of replacing it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68547 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c

index 31b9815..8c89ca0 100644 (file)
@@ -1,4 +1,9 @@
 2003-06-26  Richard Henderson  <rth@redhat.com>
+       
+       * emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE
+       instead of replacing it.
+       
+2003-06-26  Richard Henderson  <rth@redhat.com>
 
        * flow.c (propagate_one_insn): Kill function return value 
        registers across tail calls.
index 3f444a9..908b12d 100644 (file)
@@ -3510,8 +3510,10 @@ try_split (pat, trial, last)
       for (insn = insn_last; insn ; insn = PREV_INSN (insn))
        if (GET_CODE (insn) == CALL_INSN)
          {
-           CALL_INSN_FUNCTION_USAGE (insn)
-             = CALL_INSN_FUNCTION_USAGE (trial);
+           rtx *p = &CALL_INSN_FUNCTION_USAGE (insn);
+           while (*p)
+             p = &XEXP (*p, 1);
+           *p = CALL_INSN_FUNCTION_USAGE (trial);
            SIBLING_CALL_P (insn) = SIBLING_CALL_P (trial);
          }
     }