Fix test for signed div fast path
authormalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 9 Jun 2008 19:57:27 +0000 (19:57 +0000)
committermalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 9 Jun 2008 19:57:27 +0000 (19:57 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4714 c046a42c-6fe2-441c-8c8c-71466251a162

tcg/ppc/tcg-target.c

index 6c4e375..205cd2b 100644 (file)
@@ -1057,7 +1057,13 @@ static void tcg_out_div2 (TCGContext *s, int uns)
 {
     void *label1_ptr, *label2_ptr;
 
-    tcg_out32 (s, CMPLI | BF (7) | RA (3));
+    if (uns)
+        tcg_out32 (s, CMPLI | BF (7) | RA (3));
+    else {
+        tcg_out32 (s, SRAWI | RS (4) | RA (0) | 31);
+        tcg_out32 (s, CMPL | BF (7) | RA (3) | RB (4));
+    }
+
     label1_ptr = s->code_ptr;
     tcg_out32 (s, BC | BI (7, CR_EQ) | BO_COND_TRUE);