From b627826da8fcdaf8077a85a179d79c5221988a90 Mon Sep 17 00:00:00 2001 From: erich Date: Thu, 15 Sep 1994 13:17:28 +0000 Subject: [PATCH] (expand_binop, multi-word shifts): Generate rtl free of conflicts for shifts less than one word. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8084 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/optabs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gcc/optabs.c b/gcc/optabs.c index 89595c72ece..6cc8510831c 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -689,13 +689,6 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) if (carries == 0) inter = 0; 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, op1, 0, unsignedp, next_methods); @@ -705,6 +698,13 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) if (inter != 0 && inter != into_target) 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 (); -- 2.11.4.GIT