(expand_builtin_apply): Put new function usage data at end of any data
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 11 May 1994 20:23:11 +0000 (16:23 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 11 May 1994 20:23:11 +0000 (16:23 -0400)
already there.

From-SVN: r7274

gcc/expr.c

index 2d31f9eeb800083e719d5b796b3cca7e474734ba..244a84c57eeca497d8e7b867b4b83b170bac848e 100644 (file)
@@ -7817,8 +7817,20 @@ expand_builtin_apply (function, arguments, argsize)
   if (! call_insn)
     abort ();
 
-  /* Put the register usage information on the CALL.  */
-  CALL_INSN_FUNCTION_USAGE (call_insn) = call_fusage;
+  /* Put the register usage information on the CALL.  If there is already
+     some usage information, put ours at the end.  */
+  if (CALL_INSN_FUNCTION_USAGE (call_insn))
+    {
+      rtx link;
+
+      for (link = CALL_INSN_FUNCTION_USAGE (call_insn); XEXP (link, 1) != 0;
+          link = XEXP (link, 1))
+       ;
+
+      XEXP (link, 1) = call_fusage;
+    }
+  else
+    CALL_INSN_FUNCTION_USAGE (call_insn) = call_fusage;
 
   /* Restore the stack.  */
   emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX);