Merge r1925:1948 from branches/ARM. This temporarily breaks all other
targets, because a few IR primops to do with int<->float conversions
have been renamed, and because an internal interface for creating
spill/reload instructions has changed.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1949 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/guest_ppc_toIR.c b/priv/guest_ppc_toIR.c
index eda971d..24e7dbb 100644
--- a/priv/guest_ppc_toIR.c
+++ b/priv/guest_ppc_toIR.c
@@ -6544,7 +6544,7 @@
case 0x00E: // fctiw (Float Conv to Int, PPC32 p404)
DIP("fctiw%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
assign( r_tmp32,
- binop(Iop_F64toI32, rm, mkexpr(frB)) );
+ binop(Iop_F64toI32S, rm, mkexpr(frB)) );
assign( frD, unop( Iop_ReinterpI64asF64,
unop( Iop_32Uto64, mkexpr(r_tmp32))));
/* FPRF is undefined after fctiw. Leave unchanged. */
@@ -6554,7 +6554,7 @@
case 0x00F: // fctiwz (Float Conv to Int, Round to Zero, PPC32 p405)
DIP("fctiwz%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
assign( r_tmp32,
- binop(Iop_F64toI32, mkU32(Irrm_ZERO), mkexpr(frB) ));
+ binop(Iop_F64toI32S, mkU32(Irrm_ZERO), mkexpr(frB) ));
assign( frD, unop( Iop_ReinterpI64asF64,
unop( Iop_32Uto64, mkexpr(r_tmp32))));
/* FPRF is undefined after fctiwz. Leave unchanged. */
@@ -6564,7 +6564,7 @@
case 0x32E: // fctid (Float Conv to Int DWord, PPC64 p437)
DIP("fctid%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
assign( r_tmp64,
- binop(Iop_F64toI64, rm, mkexpr(frB)) );
+ binop(Iop_F64toI64S, rm, mkexpr(frB)) );
assign( frD, unop( Iop_ReinterpI64asF64, mkexpr(r_tmp64)) );
/* FPRF is undefined after fctid. Leave unchanged. */
set_FPRF = False;
@@ -6573,7 +6573,7 @@
case 0x32F: // fctidz (Float Conv to Int DWord, Round to Zero, PPC64 p437)
DIP("fctidz%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
assign( r_tmp64,
- binop(Iop_F64toI64, mkU32(Irrm_ZERO), mkexpr(frB)) );
+ binop(Iop_F64toI64S, mkU32(Irrm_ZERO), mkexpr(frB)) );
assign( frD, unop( Iop_ReinterpI64asF64, mkexpr(r_tmp64)) );
/* FPRF is undefined after fctidz. Leave unchanged. */
set_FPRF = False;
@@ -6583,7 +6583,7 @@
DIP("fcfid%s fr%u,fr%u\n", flag_rC ? ".":"", frD_addr, frB_addr);
assign( r_tmp64, unop( Iop_ReinterpF64asI64, mkexpr(frB)) );
assign( frD,
- binop(Iop_I64toF64, rm, mkexpr(r_tmp64)) );
+ binop(Iop_I64StoF64, rm, mkexpr(r_tmp64)) );
break;
default: