]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge r1826 (amd64 support for FUCOMPP). (#161378, #160136)
authorJulian Seward <jseward@acm.org>
Tue, 13 May 2008 08:51:17 +0000 (08:51 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 13 May 2008 08:51:17 +0000 (08:51 +0000)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_3_BRANCH@1842

VEX/priv/guest-amd64/toIR.c

index 28083742ae666a8f0f43a2184880c9650a46db9a..7bf474eb7e9a405123f8fdf970dcf7ac7d2a3f12 100644 (file)
@@ -5159,19 +5159,20 @@ ULong dis_FPU ( /*OUT*/Bool* decode_ok,
                                     get_ST(0), get_ST(r_src)) );
                break;
 
-//..             case 0xE9: /* FUCOMPP %st(0),%st(1) */
-//..                DIP("fucompp %%st(0),%%st(1)\n");
-//..                /* This forces C1 to zero, which isn't right. */
-//..                put_C3210( 
-//..                    binop( Iop_And32,
-//..                           binop(Iop_Shl32, 
-//..                                 binop(Iop_CmpF64, get_ST(0), get_ST(1)),
-//..                                 mkU8(8)),
-//..                           mkU32(0x4500)
-//..                    ));
-//..                fp_pop();
-//..                fp_pop();
-//..                break;
+            case 0xE9: /* FUCOMPP %st(0),%st(1) */
+               DIP("fucompp %%st(0),%%st(1)\n");
+               /* This forces C1 to zero, which isn't right. */
+               put_C3210( 
+                   unop(Iop_32Uto64,
+                   binop( Iop_And32,
+                          binop(Iop_Shl32, 
+                                binop(Iop_CmpF64, get_ST(0), get_ST(1)),
+                                mkU8(8)),
+                          mkU32(0x4500)
+                   )));
+               fp_pop();
+               fp_pop();
+               break;
 
             default:
                goto decode_fail;