summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-15 23:30:23 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-15 23:30:23 +0000
commit29a1d14b1b4097e3ad500d9d52ec2174d7d8f041 (patch)
tree08a25f7864260b8894c8964349309a6e71186009 /gcc
parent8baa3116abec21964bc5598fb69bc8c7367736b2 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/optabs.c8
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)