diff options
author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-15 23:30:23 +0000 |
---|---|---|
committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-15 23:30:23 +0000 |
commit | 29a1d14b1b4097e3ad500d9d52ec2174d7d8f041 (patch) | |
tree | 08a25f7864260b8894c8964349309a6e71186009 /gcc | |
parent | 8baa3116abec21964bc5598fb69bc8c7367736b2 (diff) | |
download | gcc-29a1d14b1b4097e3ad500d9d52ec2174d7d8f041.tar.gz |
* optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
op1 whilst expanding the signed widenening multiply variant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96537 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/optabs.c | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4a1b3175ee0..dc9540c93ea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-03-15 Roger Sayle <roger@eyesopen.com> + + * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and + op1 whilst expanding the signed widenening multiply variant. + 2005-03-15 Richard Sandiford <rsandifo@redhat.com> * toplev.c (display_target_options): Avoid unused variable warning if diff --git a/gcc/optabs.c b/gcc/optabs.c index a28042a80aa..ccbf67034d7 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) |