aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-10-31 10:27:30 -0800
committerJim Wilson <wilson@gcc.gnu.org>1996-10-31 10:27:30 -0800
commit80a3ad457d2afd93efaeccedd5cfa978a94c96ed (patch)
treeda61a5a09dc4d92b86488f431cfe5eaf2d9b7b91
parentc647c98577530b16007abc2006efdfda3d917fce (diff)
downloadgcc-80a3ad457d2afd93efaeccedd5cfa978a94c96ed.zip
gcc-80a3ad457d2afd93efaeccedd5cfa978a94c96ed.tar.gz
gcc-80a3ad457d2afd93efaeccedd5cfa978a94c96ed.tar.bz2
(expand_call): Disable special handling for const calls
that return a PARALLEL rtx. From-SVN: r13084
-rw-r--r--gcc/calls.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index cc92f54d..f535293 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));