]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
mips: implement missing case for Iop_Not64
authorPetar Jovanovic <mips32r2@gmail.com>
Mon, 22 May 2017 15:22:06 +0000 (15:22 +0000)
committerPetar Jovanovic <mips32r2@gmail.com>
Mon, 22 May 2017 15:22:06 +0000 (15:22 +0000)
Add missing implementation of Iop_Not64 in iselInt64Expr_wrk.

Patch by Aleksandar Rikalo.

git-svn-id: svn://svn.valgrind.org/vex/trunk@3382

VEX/priv/host_mips_isel.c

index 580865b45541694dee1a54ee1b56813e9d235e0c..0c51c07030060442df2b84ba2e071591a51aafe6 100644 (file)
@@ -2945,6 +2945,19 @@ static void iselInt64Expr_wrk(HReg * rHi, HReg * rLo, ISelEnv * env, IRExpr * e)
             return;
          }
 
+         case Iop_Not64: {
+            HReg tLo = newVRegI(env);
+            HReg tHi = newVRegI(env);
+            iselInt64Expr(&tHi, &tLo, env, e->Iex.Unop.arg);
+            addInstr(env, MIPSInstr_Alu(Malu_NOR, tLo, tLo, MIPSRH_Reg(tLo)));
+            addInstr(env, MIPSInstr_Alu(Malu_NOR, tHi, tHi, MIPSRH_Reg(tHi)));
+
+            *rHi = tHi;
+            *rLo = tLo;
+
+            return;
+         }
+
          default:
             vex_printf("UNARY: No such op: ");
             ppIROp(e->Iex.Unop.op);