]> git.proxmox.com Git - qemu.git/commitdiff
The other half of the mul64 rework. Sorry for the breakage, I committed
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 26 Oct 2007 22:35:02 +0000 (22:35 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 26 Oct 2007 22:35:02 +0000 (22:35 +0000)
an incomplete version of what I tested.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3454 c046a42c-6fe2-441c-8c8c-71466251a162

host-utils.c
target-i386/helper.c
target-mips/op.c

index d0d780e54ef2588229dde1f3c94751269770aba6..a3c838f4dc8fa449a7b4e924982e52cce42d311f 100644 (file)
@@ -25,6 +25,8 @@
 
 #include "vl.h"
 
+//#define DEBUG_MULDIV
+
 /* Long integer helpers */
 static void add128 (uint64_t *plow, uint64_t *phigh, uint64_t a, uint64_t b)
 {
index c5d4487a62551b794d313cc629ca0f576b1bf5c2..88aa82e42a6c677f3c4def6d753f88c4779cb3ff 100644 (file)
@@ -3724,7 +3724,7 @@ void helper_mulq_EAX_T0(void)
 {
     uint64_t r0, r1;
 
-    mulu64(&r1, &r0, EAX, T0);
+    mulu64(&r0, &r1, EAX, T0);
     EAX = r0;
     EDX = r1;
     CC_DST = r0;
@@ -3735,7 +3735,7 @@ void helper_imulq_EAX_T0(void)
 {
     uint64_t r0, r1;
 
-    muls64(&r1, &r0, EAX, T0);
+    muls64(&r0, &r1, EAX, T0);
     EAX = r0;
     EDX = r1;
     CC_DST = r0;
@@ -3746,7 +3746,7 @@ void helper_imulq_T0_T1(void)
 {
     uint64_t r0, r1;
 
-    muls64(&r1, &r0, T0, T1);
+    muls64(&r0, &r1, T0, T1);
     T0 = r0;
     CC_DST = r0;
     CC_SRC = ((int64_t)r1 != ((int64_t)r0 >> 63));
index 5c26d176c1d56ba65fd8e61be8724e005db97b98..1ecec9a57af85a20fd7de6dd4114470cdbc35613 100644 (file)
@@ -876,13 +876,13 @@ void op_msubu (void)
 #if defined(TARGET_MIPSN32) || defined(TARGET_MIPS64)
 void op_dmult (void)
 {
-    CALL_FROM_TB4(muls64, &(env->HI[0][env->current_tc]), &(env->LO[0][env->current_tc]), T0, T1);
+    CALL_FROM_TB4(muls64, &(env->LO[0][env->current_tc]), &(env->HI[0][env->current_tc]), T0, T1);
     RETURN();
 }
 
 void op_dmultu (void)
 {
-    CALL_FROM_TB4(mulu64, &(env->HI[0][env->current_tc]), &(env->LO[0][env->current_tc]), T0, T1);
+    CALL_FROM_TB4(mulu64, &(env->LO[0][env->current_tc]), &(env->HI[0][env->current_tc]), T0, T1);
     RETURN();
 }
 #endif