diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-11 16:23:11 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-11 16:23:11 -0400 |
commit | 6d100794d0665f1b78d81faadbd967e6a45e9a49 (patch) | |
tree | 0f41ff986aaf9d88c4a665b347b9bc54e9a0ce01 /gcc/expr.c | |
parent | e59e60a78f6e12dabf8b71a44465e9b91422ce3b (diff) | |
download | gcc-6d100794d0665f1b78d81faadbd967e6a45e9a49.zip gcc-6d100794d0665f1b78d81faadbd967e6a45e9a49.tar.gz gcc-6d100794d0665f1b78d81faadbd967e6a45e9a49.tar.bz2 |
(expand_builtin_apply): Put new function usage data at end of any data
already there.
From-SVN: r7274
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -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); |