(expand_binop, multi-word shifts): Generate rtl

free of conflicts for shifts less than one word.

From-SVN: r8084
This commit is contained in:
Richard Earnshaw 1994-09-15 13:17:28 +00:00
parent d90aadbb6d
commit cf2f711352

View File

@ -689,13 +689,6 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
if (carries == 0) if (carries == 0)
inter = 0; inter = 0;
else else
inter = expand_binop (word_mode, binoptab, outof_input,
op1, outof_target, unsignedp, next_methods);
if (inter != 0 && inter != outof_target)
emit_move_insn (outof_target, inter);
if (inter != 0)
inter = expand_binop (word_mode, unsigned_shift, into_input, inter = expand_binop (word_mode, unsigned_shift, into_input,
op1, 0, unsignedp, next_methods); op1, 0, unsignedp, next_methods);
@ -705,6 +698,13 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
if (inter != 0 && inter != into_target) if (inter != 0 && inter != into_target)
emit_move_insn (into_target, inter); emit_move_insn (into_target, inter);
if (inter != 0)
inter = expand_binop (word_mode, binoptab, outof_input,
op1, outof_target, unsignedp, next_methods);
if (inter != 0 && inter != outof_target)
emit_move_insn (outof_target, inter);
} }
insns = get_insns (); insns = get_insns ();