Commit 0c0ab0f1 by Olivier Hainque Committed by Olivier Hainque

optabs.c (expand_binop): When synthesizing double word rotates from single word shifts...

        * optabs.c (expand_binop): When synthesizing double word rotates
        from single word shifts, use a new register target if the provided
        target is not a REG already.

From-SVN: r79875
parent 22421b79
2004-03-23 Olivier Hainque <hainque@act-europe.fr>
* optabs.c (expand_binop): When synthesizing double word rotates
from single word shifts, use a new register target if the provided
target is not a REG already.
2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
......
......@@ -1087,8 +1087,12 @@ expand_binop (enum machine_mode mode, optab binoptab, rtx op0, rtx op1,
int shift_count, left_shift, outof_word;
/* If TARGET is the same as one of the operands, the REG_EQUAL note
won't be accurate, so use a new target. */
if (target == 0 || target == op0 || target == op1)
won't be accurate, so use a new target. Do this also if target is not
a REG, first because having a register instead may open optimization
oportunities, and second because if target and op0 happen to be MEMs
designating the same location, we would risk clobbering it too early
in the code sequence we generate below. */
if (target == 0 || target == op0 || target == op1 || ! REG_P (target))
target = gen_reg_rtx (mode);
start_sequence ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment