fp_pop();
break;
-//.. case 0xE0 ... 0xE7: /* FUCOM %st(0),%st(?) */
-//.. r_dst = (UInt)modrm - 0xE0;
-//.. DIP("fucom %%st(0),%%st(%d)\n", r_dst);
-//.. /* 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(r_dst)),
-//.. mkU8(8)),
-//.. mkU32(0x4500)
-//.. ));
-//.. break;
-//..
+ case 0xE0 ... 0xE7: /* FUCOM %st(0),%st(?) */
+ r_dst = (UInt)modrm - 0xE0;
+ DIP("fucom %%st(0),%%st(%d)\n", r_dst);
+ /* 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(r_dst)),
+ mkU8(8)),
+ mkU32(0x4500)
+ )));
+ break;
+
//.. case 0xE8 ... 0xEF: /* FUCOMP %st(0),%st(?) */
//.. r_dst = (UInt)modrm - 0xE8;
//.. DIP("fucomp %%st(0),%%st(%d)\n", r_dst);