|
From: <sv...@va...> - 2005-12-27 14:30:49
|
Author: sewardj
Date: 2005-12-27 14:30:46 +0000 (Tue, 27 Dec 2005)
New Revision: 1515
Log:
Merge vx1492 (fix for: ppc32: fsqrt). Needs verification.
Modified:
branches/VEX_3_1_BRANCH/priv/guest-ppc32/toIR.c
Modified: branches/VEX_3_1_BRANCH/priv/guest-ppc32/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/VEX_3_1_BRANCH/priv/guest-ppc32/toIR.c 2005-12-27 14:22:25 U=
TC (rev 1514)
+++ branches/VEX_3_1_BRANCH/priv/guest-ppc32/toIR.c 2005-12-27 14:30:46 U=
TC (rev 1515)
@@ -4340,6 +4340,16 @@
binop(Iop_AddF64, mkexpr(frA), mkexpr(frB)) ));
break;
=20
+ case 0x16: // fsqrt (Floating SqRt (Double-Precision), PPC32 p427)
+ if (frA_addr !=3D 0 || frC_addr !=3D 0) {
+ vex_printf("dis_fp_arith(PPC32)(instr,fsqrt)\n");
+ return False;
+ }
+ DIP("fsqrt%s fr%u,fr%u\n", flag_rC ? "." : "",
+ frD_addr, frB_addr);
+ assign( frD, unop( Iop_SqrtF64, mkexpr(frB) ) );
+ break;
+
//zz case 0x16: // fsqrts (Floating SqRt (Single-Precision), PPC32=
p428)
//zz if (frA_addr !=3D 0 || frC_addr !=3D 0) {
//zz vex_printf("dis_fp_arith(PPC32)(instr,fsqrts)\n");
|