]> git.proxmox.com Git - qemu.git/commitdiff
M68k build fix.
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 12 Nov 2006 21:31:18 +0000 (21:31 +0000)
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 12 Nov 2006 21:31:18 +0000 (21:31 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2212 c046a42c-6fe2-441c-8c8c-71466251a162

target-m68k/op.c
target-m68k/translate.c

index 489eafeef64713c664678d3bbf4dc00fc872760e..8ea7589c3f1d836573890cfde398cd2f65b6cc8a 100644 (file)
@@ -412,7 +412,10 @@ OP(divu)
     quot = num / den;
     rem = num % den;
     flags = 0;
-    if (PARAM1 && quot > 0xffff)
+    /* Avoid using a PARAM1 of zero.  This breaks dyngen because it uses
+       the address of a symbol, and gcc knows symbols can't have address
+       zero.  */
+    if (PARAM1 == 2 && quot > 0xffff)
         flags |= CCF_V;
     if (quot == 0)
         flags |= CCF_Z;
@@ -439,7 +442,7 @@ OP(divs)
     quot = num / den;
     rem = num % den;
     flags = 0;
-    if (PARAM1 && quot != (int16_t)quot)
+    if (PARAM1 == 2 && quot != (int16_t)quot)
         flags |= CCF_V;
     if (quot == 0)
         flags |= CCF_Z;
index 10728f97d3092e621d86876203d4ab6b6b805f12..9c34c626b21152b77eb0b20c94f63c6960616a26 100644 (file)
@@ -747,9 +747,9 @@ DISAS_INSN(divl)
     den = gen_ea(s, insn, OS_LONG, 0, NULL);
     gen_op_mov32(QREG_DIV2, den);
     if (ext & 0x0800) {
-        gen_op_divs(0);
+        gen_op_divs(2);
     } else {
-        gen_op_divu(0);
+        gen_op_divu(2);
     }
     if (num == reg) {
         /* div */