calls.c (expand_call): When modes of target and valreg match, force sibcall failure when target is a MEM.

* calls.c (expand_call): When modes of target and valreg match,	force
	sibcall failure when target is a MEM.

From-SVN: r66260
This commit is contained in:
Olivier Hainque 2003-04-29 23:47:42 +02:00 committed by Richard Kenner
parent 555456b175
commit 0219237c53
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2003-04-29 Olivier Hainque <hainque@act-europe.fr>
* calls.c (expand_call): When modes of target and valreg match, force
sibcall failure when target is a MEM.
2003-04-29 Geoffrey Keating <geoffk@apple.com>
* doc/invoke.texi (Overall Options): Mention -x objective-c-header.

View File

@ -3279,6 +3279,12 @@ expand_call (exp, target, ignore)
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);
/* If we are setting a MEM, this code must be executed. Since it is
emitted after the call insn, sibcall optimization cannot be
performed in that case. */
if (GET_CODE (target) == MEM)
sibcall_failure = 1;
}
else if (TYPE_MODE (TREE_TYPE (exp)) == BLKmode)
{