diff --git a/dex-translator/src/main/java/com/googlecode/d2j/converter/IR2JConverter.java b/dex-translator/src/main/java/com/googlecode/d2j/converter/IR2JConverter.java index 7c7badf1b..d8f880aea 100755 --- a/dex-translator/src/main/java/com/googlecode/d2j/converter/IR2JConverter.java +++ b/dex-translator/src/main/java/com/googlecode/d2j/converter/IR2JConverter.java @@ -912,6 +912,15 @@ private static void reBuildE1Expression(E1Expr e1, MethodVisitor asm) { case NEG: asm.visitInsn(getOpcode(e1, INEG)); break; + case NOT: // fix issue#207 missing ~ bitwise complement operator + if (e1.getOp().valueType.equals("I")) { + asm.visitLdcInsn(-1); + asm.visitInsn(getOpcode(e1, IXOR)); + } else if (e1.getOp().valueType.equals("J")) { + asm.visitLdcInsn(-1L); + asm.visitInsn(getOpcode(e1, IXOR)); + } + break; } }