aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-11 16:22:02 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-11 16:22:02 -0400
commite59e60a78f6e12dabf8b71a44465e9b91422ce3b (patch)
tree16f1fe7077f8a9223a2799cfa20ffb371b1d8b11 /gcc
parent1af0b2da29b668b1b763e54c9f37fc0f5425af8e (diff)
downloadgcc-e59e60a78f6e12dabf8b71a44465e9b91422ce3b.zip
gcc-e59e60a78f6e12dabf8b71a44465e9b91422ce3b.tar.gz
gcc-e59e60a78f6e12dabf8b71a44465e9b91422ce3b.tar.bz2
(emit_call_1): Put new function usage data at end of any data already
there. From-SVN: r7273
Diffstat (limited to 'gcc')
-rw-r--r--gcc/calls.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 4ca0483..99c8a60 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -408,8 +408,20 @@ emit_call_1 (funexp, funtype, stack_size, struct_value_size, next_arg_reg,
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;
/* If this is a const call, then set the insn's unchanging bit. */
if (is_const)