summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1996-10-31 18:27:30 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1996-10-31 18:27:30 +0000
commitab9ade9f016b40a9a58c08953028a60fbeea99b6 (patch)
treeda61a5a09dc4d92b86488f431cfe5eaf2d9b7b91 /gcc/calls.c
parent85bc89d5c46abd228ed7062481638908870c6108 (diff)
downloadgcc-ab9ade9f016b40a9a58c08953028a60fbeea99b6.tar.gz
(expand_call): Disable special handling for const calls
that return a PARALLEL rtx. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13084 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index cc92f54dcab..f53529312c9 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1912,8 +1912,9 @@ expand_call (exp, target, ignore)
/* If call is cse'able, make appropriate pair of reg-notes around it.
Test valreg so we don't crash; may safely ignore `const'
- if return type is void. */
- if (is_const && valreg != 0)
+ if return type is void. Disable for PARALLEL return values, because
+ we have no way to move such values into a pseudo register. */
+ if (is_const && valreg != 0 && GET_CODE (valreg) != PARALLEL)
{
rtx note = 0;
rtx temp = gen_reg_rtx (GET_MODE (valreg));