diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/optabs.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e6c104..87dd52d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-10-24 Richard Sandiford <rsandifo@redhat.com> + + * optabs.c (expand_binop): Don't reuse the shift target in the + middle of shift sequences. + 2002-10-23 Ziemowit Laski <zlaski@apple.com> * objc/objc-act.c (get_static_reference): Remove unneeded diff --git a/gcc/optabs.c b/gcc/optabs.c index ec03c19..dcb15b0 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -1151,7 +1151,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) NULL_RTX, unsignedp, next_methods); into_temp2 = expand_binop (word_mode, reverse_unsigned_shift, into_input, second_shift_count, - into_target, unsignedp, next_methods); + NULL_RTX, unsignedp, next_methods); if (into_temp1 != 0 && into_temp2 != 0) inter = expand_binop (word_mode, ior_optab, into_temp1, into_temp2, @@ -1167,7 +1167,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) NULL_RTX, unsignedp, next_methods); outof_temp2 = expand_binop (word_mode, reverse_unsigned_shift, outof_input, second_shift_count, - outof_target, unsignedp, next_methods); + NULL_RTX, unsignedp, next_methods); if (inter != 0 && outof_temp1 != 0 && outof_temp2 != 0) inter = expand_binop (word_mode, ior_optab, |