diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1996-10-23 13:27:44 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1996-10-23 13:27:44 -0700 |
commit | 059c3d849e4cabccbe6d36710f903986c55bd1fb (patch) | |
tree | 574236e4335c133ca437f8a443f4681406cdb7f5 | |
parent | dd98f85c9a6430e028f6e9dc91a1531fb04c843c (diff) | |
download | gcc-059c3d849e4cabccbe6d36710f903986c55bd1fb.zip gcc-059c3d849e4cabccbe6d36710f903986c55bd1fb.tar.gz gcc-059c3d849e4cabccbe6d36710f903986c55bd1fb.tar.bz2 |
(expand_call): In target code, move PARALLEL case above
target != case.
From-SVN: r13010
-rw-r--r-- | gcc/calls.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index 46843941..9f9d659 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2022,15 +2022,6 @@ expand_call (exp, target, ignore) expr_size (exp), TYPE_ALIGN (TREE_TYPE (exp)) / BITS_PER_UNIT); } - else if (target && GET_MODE (target) == TYPE_MODE (TREE_TYPE (exp)) - && GET_MODE (target) == GET_MODE (valreg)) - /* TARGET and VALREG cannot be equal at this point because the latter - would not have REG_FUNCTION_VALUE_P true, while the former would if - it were referring to the same register. - - If they refer to the same register, this move will be a no-op, except - when function inlining is being done. */ - emit_move_insn (target, valreg); /* Handle calls that return values in multiple non-contiguous locations. The Irix 6 ABI has examples of this. */ else if (GET_CODE (valreg) == PARALLEL) @@ -2045,6 +2036,15 @@ expand_call (exp, target, ignore) emit_group_store (target, valreg); } + else if (target && GET_MODE (target) == TYPE_MODE (TREE_TYPE (exp)) + && GET_MODE (target) == GET_MODE (valreg)) + /* TARGET and VALREG cannot be equal at this point because the latter + would not have REG_FUNCTION_VALUE_P true, while the former would if + it were referring to the same register. + + If they refer to the same register, this move will be a no-op, except + when function inlining is being done. */ + emit_move_insn (target, valreg); else if (TYPE_MODE (TREE_TYPE (exp)) == BLKmode) { /* Some machines (the PA for example) want to return all small |