64-bit multiplication fix (Ulrich Hecht)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@446 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/target-arm/op.c b/target-arm/op.c
index 5879eba..73f95b7 100644
--- a/target-arm/op.c
+++ b/target-arm/op.c
@@ -368,7 +368,7 @@
void OPPROTO op_mull_T0_T1(void)
{
uint64_t res;
- res = T0 * T1;
+ res = (uint64_t)T0 * (uint64_t)T1;
T1 = res >> 32;
T0 = res;
}
@@ -377,7 +377,7 @@
void OPPROTO op_imull_T0_T1(void)
{
uint64_t res;
- res = (int32_t)T0 * (int32_t)T1;
+ res = (int64_t)T0 * (int64_t)T1;
T1 = res >> 32;
T0 = res;
}