Dirk Mueller
f062078a7c
OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=29
32 lines
1.0 KiB
Diff
32 lines
1.0 KiB
Diff
Index: VEX/priv/host_ppc_isel.c
|
|
===================================================================
|
|
--- VEX/priv/host_ppc_isel.c (revision 2135)
|
|
+++ VEX/priv/host_ppc_isel.c (revision 2136)
|
|
@@ -1615,6 +1615,7 @@
|
|
case Iop_Not16:
|
|
case Iop_Not32:
|
|
case Iop_Not64: {
|
|
+ if (op_unop == Iop_Not64) vassert(mode64);
|
|
HReg r_dst = newVRegI(env);
|
|
HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
|
|
addInstr(env, PPCInstr_Unary(Pun_NOT,r_dst,r_src));
|
|
@@ -2885,6 +2886,18 @@
|
|
return;
|
|
}
|
|
|
|
+ case Iop_Not64: {
|
|
+ HReg xLo, xHi;
|
|
+ HReg tmpLo = newVRegI(env);
|
|
+ HReg tmpHi = newVRegI(env);
|
|
+ iselInt64Expr(&xHi, &xLo, env, e->Iex.Unop.arg);
|
|
+ addInstr(env, PPCInstr_Unary(Pun_NOT,tmpLo,xLo));
|
|
+ addInstr(env, PPCInstr_Unary(Pun_NOT,tmpHi,xHi));
|
|
+ *rHi = tmpHi;
|
|
+ *rLo = tmpLo;
|
|
+ return;
|
|
+ }
|
|
+
|
|
/* ReinterpF64asI64(e) */
|
|
/* Given an IEEE754 double, produce an I64 with the same bit
|
|
pattern. */
|