target-ppc: Bug Fix: mullw
commit1fa74845f2bab36bfa37108b9054b53c1b8264b9
authorTom Musta <tommusta@gmail.com>
Tue, 12 Aug 2014 13:45:06 +0000 (12 08:45 -0500)
committerAlexander Graf <agraf@suse.de>
Mon, 8 Sep 2014 10:50:50 +0000 (8 12:50 +0200)
tree08e77f50d8753ad875fa273663d23631a9cc2353
parentf11ebbf8d4308795129bc6651cf701b61b812abf
target-ppc: Bug Fix: mullw

For 64-bit implementations, the mullw result is the 64 bit product
of the sign-extended least significant 32 bits of the source
registers.

Fix the code to properly sign extend the source operands and produce
a 64 bit product.

Example:
R3 00000000002F37A0
R4 41C33D242F816715
mullw 3,3,4
R3 expected : 0008C3146AE0F020
R3 actual   : 000000006AE0F020 (without this patch)

Signed-off-by: Tom Musta <tommusta@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-ppc/translate.c