aboutsummaryrefslogtreecommitdiff
path: root/sim/mips
diff options
context:
space:
mode:
authorChris Demetriou <cgd@google.com>2003-04-16 00:52:08 +0000
committerChris Demetriou <cgd@google.com>2003-04-16 00:52:08 +0000
commitbcd0068ecfead0ef4cc2f9bd3247fed9909001c6 (patch)
tree164ff516d7ae3f779c76f17d916b13c5bea342e7 /sim/mips
parent060dc71d214a80f4efcb3133935f133c7898a982 (diff)
downloadgdb-bcd0068ecfead0ef4cc2f9bd3247fed9909001c6.zip
gdb-bcd0068ecfead0ef4cc2f9bd3247fed9909001c6.tar.gz
gdb-bcd0068ecfead0ef4cc2f9bd3247fed9909001c6.tar.bz2
2003-04-15 Richard Sandiford <rsandifo@redhat.com>
* vr.igen (do_vr_mul_op): Zero-extend the low 32 bits of unsigned operands.
Diffstat (limited to 'sim/mips')
-rw-r--r--sim/mips/ChangeLog5
-rw-r--r--sim/mips/vr.igen4
2 files changed, 8 insertions, 1 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog
index 76c676c..1474f79 100644
--- a/sim/mips/ChangeLog
+++ b/sim/mips/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * vr.igen (do_vr_mul_op): Zero-extend the low 32 bits of
+ unsigned operands.
+
2003-02-27 Andrew Cagney <cagney@redhat.com>
* interp.c (sim_open):
diff --git a/sim/mips/vr.igen b/sim/mips/vr.igen
index 0eb5f4d..742a85d 100644
--- a/sim/mips/vr.igen
+++ b/sim/mips/vr.igen
@@ -73,7 +73,9 @@
(long) CIA);
TRACE_ALU_INPUT2 (x, y);
- product = (unsigned_p ? x * y : EXTEND32 (x) * EXTEND32 (y));
+ product = (unsigned_p
+ ? V8_4 (x, 1) * V8_4 (y, 1)
+ : EXTEND32 (x) * EXTEND32 (y));
result = (subtract_p ? lhs - product : lhs + product);
if (saturate_p)
{