From 69f39b11aae0baeeba798fa1e6dead8845ce35ce Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Tue, 15 Mar 2005 23:30:23 +0000 Subject: [PATCH] optabs.c (expand_doubleword_mult): Avoid clobbering op0 and op1 whilst expanding the signed widenening multiply... * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and op1 whilst expanding the signed widenening multiply variant. From-SVN: r96537 --- gcc/ChangeLog | 5 +++++ gcc/optabs.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4a1b3175ee05..dc9540c93ea8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-03-15 Roger Sayle + + * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and + op1 whilst expanding the signed widenening multiply variant. + 2005-03-15 Richard Sandiford * toplev.c (display_target_options): Avoid unused variable warning if diff --git a/gcc/optabs.c b/gcc/optabs.c index a28042a80aaf..ccbf67034d72 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -843,7 +843,7 @@ expand_doubleword_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target, NULL_RTX, 1, methods); if (temp) op0_high = expand_binop (word_mode, add_optab, op0_high, temp, - op0_high, 0, OPTAB_DIRECT); + NULL_RTX, 0, OPTAB_DIRECT); else { temp = expand_binop (word_mode, ashr_optab, op0_low, wordm1, @@ -851,7 +851,7 @@ expand_doubleword_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target, if (!temp) return NULL_RTX; op0_high = expand_binop (word_mode, sub_optab, op0_high, temp, - op0_high, 0, OPTAB_DIRECT); + NULL_RTX, 0, OPTAB_DIRECT); } if (!op0_high) @@ -872,7 +872,7 @@ expand_doubleword_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target, NULL_RTX, 1, methods); if (temp) op1_high = expand_binop (word_mode, add_optab, op1_high, temp, - op1_high, 0, OPTAB_DIRECT); + NULL_RTX, 0, OPTAB_DIRECT); else { temp = expand_binop (word_mode, ashr_optab, op1_low, wordm1, @@ -880,7 +880,7 @@ expand_doubleword_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target, if (!temp) return NULL_RTX; op1_high = expand_binop (word_mode, sub_optab, op1_high, temp, - op1_high, 0, OPTAB_DIRECT); + NULL_RTX, 0, OPTAB_DIRECT); } if (!op1_high)