Introduce opcodes for IR instructions
Change-Id: Ic1c15e75bfc00dfa5e033033006c6e531ce2f398
diff --git a/src/main/java/com/android/tools/r8/ir/code/Add.java b/src/main/java/com/android/tools/r8/ir/code/Add.java
index 513798f..3a5fa32 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Add.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Add.java
@@ -23,6 +23,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ADD;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingDefinition.java b/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingDefinition.java
index a8f8575..3f0d75a 100644
--- a/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingDefinition.java
+++ b/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingDefinition.java
@@ -19,6 +19,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ALWAYS_MATERIALIZING_DEFINITION;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingNop.java b/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingNop.java
index c84b93d..8cd1503 100644
--- a/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingNop.java
+++ b/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingNop.java
@@ -20,6 +20,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ALWAYS_MATERIALIZING_NOP;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingUser.java b/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingUser.java
index e41d192..2a32bb6 100644
--- a/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingUser.java
+++ b/src/main/java/com/android/tools/r8/ir/code/AlwaysMaterializingUser.java
@@ -19,6 +19,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ALWAYS_MATERIALIZING_USER;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/And.java b/src/main/java/com/android/tools/r8/ir/code/And.java
index 357edf8..86c193b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/And.java
+++ b/src/main/java/com/android/tools/r8/ir/code/And.java
@@ -20,6 +20,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.AND;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Argument.java b/src/main/java/com/android/tools/r8/ir/code/Argument.java
index 380de92..93c39ec 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Argument.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Argument.java
@@ -30,6 +30,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ARGUMENT;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ArrayGet.java b/src/main/java/com/android/tools/r8/ir/code/ArrayGet.java
index 0eacf40..d90bf21 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ArrayGet.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ArrayGet.java
@@ -40,6 +40,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ARRAY_GET;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ArrayLength.java b/src/main/java/com/android/tools/r8/ir/code/ArrayLength.java
index 14b58f0..f767de8 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ArrayLength.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ArrayLength.java
@@ -25,6 +25,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ARRAY_LENGTH;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ArrayPut.java b/src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
index 57af0a0..8917cc0 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ArrayPut.java
@@ -45,6 +45,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.ARRAY_PUT;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Assume.java b/src/main/java/com/android/tools/r8/ir/code/Assume.java
index fff45a3..fca4c2e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Assume.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Assume.java
@@ -44,6 +44,11 @@
return new Assume<>(new DynamicTypeAssumption(type), dest, src, origin, appView);
}
+ @Override
+ public int opcode() {
+ return Opcodes.ASSUME;
+ }
+
public boolean verifyInstructionIsNeeded(AppView<?> appView) {
if (isAssumeDynamicType()) {
assert assumption.verifyCorrectnessOfValues(outValue(), src(), appView);
diff --git a/src/main/java/com/android/tools/r8/ir/code/CheckCast.java b/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
index 31c89e4..abc0440 100644
--- a/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
+++ b/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
@@ -32,6 +32,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CHECK_CAST;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Cmp.java b/src/main/java/com/android/tools/r8/ir/code/Cmp.java
index 1198561..97c76ce 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Cmp.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Cmp.java
@@ -37,6 +37,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CMP;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstClass.java b/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
index 21fa465..36d689e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
@@ -31,6 +31,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CONST_CLASS;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java b/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java
index c9bf902..446601c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java
@@ -27,6 +27,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CONST_METHOD_HANDLE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java b/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java
index da333fa..bb3f574 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java
@@ -27,6 +27,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CONST_METHOD_TYPE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
index e831599..3f75240 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
@@ -43,6 +43,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CONST_NUMBER;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstString.java b/src/main/java/com/android/tools/r8/ir/code/ConstString.java
index 7788351..30f42c6 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstString.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstString.java
@@ -29,6 +29,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.CONST_STRING;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java b/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java
index 49bbe7f..6bdab70 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java
@@ -20,6 +20,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DEBUG_LOCAL_READ;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DebugLocalsChange.java b/src/main/java/com/android/tools/r8/ir/code/DebugLocalsChange.java
index 4109701..12f974e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DebugLocalsChange.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DebugLocalsChange.java
@@ -30,6 +30,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DEBUG_LOCALS_CHANGE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DebugPosition.java b/src/main/java/com/android/tools/r8/ir/code/DebugPosition.java
index 82ed84d..0808885 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DebugPosition.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DebugPosition.java
@@ -20,6 +20,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DEBUG_POSITION;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java b/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
index 1b52554..b910c87 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
@@ -37,6 +37,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DEX_ITEM_BASED_CONST_STRING;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Div.java b/src/main/java/com/android/tools/r8/ir/code/Div.java
index ba55d2f..45a743f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Div.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Div.java
@@ -25,6 +25,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DIV;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Dup.java b/src/main/java/com/android/tools/r8/ir/code/Dup.java
index 4cd3c35..79fe507 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Dup.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Dup.java
@@ -27,6 +27,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DUP;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Dup2.java b/src/main/java/com/android/tools/r8/ir/code/Dup2.java
index 6e639f5..2c24e04 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Dup2.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Dup2.java
@@ -41,6 +41,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.DUP2;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Goto.java b/src/main/java/com/android/tools/r8/ir/code/Goto.java
index 826c75b..ec3066c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Goto.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Goto.java
@@ -23,6 +23,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.GOTO;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/If.java b/src/main/java/com/android/tools/r8/ir/code/If.java
index 539ecdd..611ebcc 100644
--- a/src/main/java/com/android/tools/r8/ir/code/If.java
+++ b/src/main/java/com/android/tools/r8/ir/code/If.java
@@ -80,6 +80,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.IF;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Inc.java b/src/main/java/com/android/tools/r8/ir/code/Inc.java
index d92eb4d..3d10cc4 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Inc.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Inc.java
@@ -28,6 +28,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INC;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java b/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
index 5462e09..4d211b5 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
@@ -30,7 +30,6 @@
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.InliningConstraints;
import java.util.Set;
-import org.objectweb.asm.Opcodes;
public class InstanceGet extends FieldInstruction {
@@ -39,6 +38,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INSTANCE_GET;
+ }
+
+ @Override
public boolean outTypeKnownToBeBoolean(Set<Phi> seen) {
return getField().type.isBooleanType();
}
@@ -187,7 +191,8 @@
@Override
public void buildCf(CfBuilder builder) {
builder.add(
- new CfFieldInstruction(Opcodes.GETFIELD, getField(), builder.resolveField(getField())));
+ new CfFieldInstruction(
+ org.objectweb.asm.Opcodes.GETFIELD, getField(), builder.resolveField(getField())));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstanceOf.java b/src/main/java/com/android/tools/r8/ir/code/InstanceOf.java
index 80cafe1..d59316f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstanceOf.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstanceOf.java
@@ -26,6 +26,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INSTANCE_OF;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstancePut.java b/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
index 927d171..aaed069 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
@@ -30,7 +30,6 @@
import com.android.tools.r8.ir.regalloc.RegisterAllocator;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import java.util.Arrays;
-import org.objectweb.asm.Opcodes;
public class InstancePut extends FieldInstruction {
@@ -41,6 +40,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INSTANCE_PUT;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -197,7 +201,8 @@
@Override
public void buildCf(CfBuilder builder) {
builder.add(
- new CfFieldInstruction(Opcodes.PUTFIELD, getField(), builder.resolveField(getField())));
+ new CfFieldInstruction(
+ org.objectweb.asm.Opcodes.PUTFIELD, getField(), builder.resolveField(getField())));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/Instruction.java b/src/main/java/com/android/tools/r8/ir/code/Instruction.java
index 95e8ca6..e9de61e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Instruction.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Instruction.java
@@ -63,6 +63,8 @@
setOutValue(outValue);
}
+ public abstract int opcode();
+
public abstract <T> T accept(InstructionVisitor<T> visitor);
final boolean hasPosition() {
diff --git a/src/main/java/com/android/tools/r8/ir/code/IntSwitch.java b/src/main/java/com/android/tools/r8/ir/code/IntSwitch.java
index 8f1b7f4..f22ef1c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IntSwitch.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IntSwitch.java
@@ -35,6 +35,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INT_SWITCH;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java b/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
index a8226bb..6f79a82 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
@@ -33,6 +33,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_CUSTOM;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java b/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java
index 8f3a6a7..417aa63 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java
@@ -27,7 +27,6 @@
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
-import org.objectweb.asm.Opcodes;
public class InvokeDirect extends InvokeMethodWithReceiver {
@@ -45,6 +44,11 @@
|| result == null;
}
+ @Override
+ public int opcode() {
+ return Opcodes.INVOKE_DIRECT;
+ }
+
public boolean isInterface() {
return itf;
}
@@ -136,7 +140,7 @@
@Override
public void buildCf(CfBuilder builder) {
- builder.add(new CfInvoke(Opcodes.INVOKESPECIAL, getInvokedMethod(), itf));
+ builder.add(new CfInvoke(org.objectweb.asm.Opcodes.INVOKESPECIAL, getInvokedMethod(), itf));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java b/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java
index 38cf994..6a6d5e3 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java
@@ -21,7 +21,6 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import java.util.Collection;
import java.util.List;
-import org.objectweb.asm.Opcodes;
public class InvokeInterface extends InvokeMethodWithReceiver {
@@ -30,6 +29,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_INTERFACE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -107,7 +111,7 @@
@Override
public void buildCf(CfBuilder builder) {
- builder.add(new CfInvoke(Opcodes.INVOKEINTERFACE, getInvokedMethod(), true));
+ builder.add(new CfInvoke(org.objectweb.asm.Opcodes.INVOKEINTERFACE, getInvokedMethod(), true));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java b/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java
index 05a801d..0ef2bb6 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java
@@ -27,6 +27,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_MULTI_NEW_ARRAY;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java b/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java
index bcdcdc0..8378a5d 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java
@@ -32,6 +32,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_NEW_ARRAY;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java b/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java
index 0bb7a74..abe39c7 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java
@@ -22,7 +22,6 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import java.util.Collection;
import java.util.List;
-import org.objectweb.asm.Opcodes;
public class InvokePolymorphic extends InvokeMethod {
@@ -34,6 +33,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_POLYMORPHIC;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -92,7 +96,7 @@
// To translate InvokePolymorphic back into InvokeVirtual, use the original prototype
// that is stored in getProto().
DexMethod method = factory.createMethod(dexMethod.holder, getProto(), dexMethod.name);
- builder.add(new CfInvoke(Opcodes.INVOKEVIRTUAL, method, false));
+ builder.add(new CfInvoke(org.objectweb.asm.Opcodes.INVOKEVIRTUAL, method, false));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java b/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java
index c0b3ac5..f9f73f2 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java
@@ -26,7 +26,6 @@
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
-import org.objectweb.asm.Opcodes;
public class InvokeStatic extends InvokeMethod {
@@ -43,6 +42,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_STATIC;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -126,7 +130,7 @@
@Override
public void buildCf(CfBuilder builder) {
- builder.add(new CfInvoke(Opcodes.INVOKESTATIC, getInvokedMethod(), itf));
+ builder.add(new CfInvoke(org.objectweb.asm.Opcodes.INVOKESTATIC, getInvokedMethod(), itf));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java b/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
index 594b59d..b128648 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
@@ -21,7 +21,6 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import org.objectweb.asm.Opcodes;
public class InvokeSuper extends InvokeMethodWithReceiver {
@@ -33,6 +32,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_SUPER;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -73,7 +77,7 @@
@Override
public void buildCf(CfBuilder builder) {
- builder.add(new CfInvoke(Opcodes.INVOKESPECIAL, getInvokedMethod(), itf));
+ builder.add(new CfInvoke(org.objectweb.asm.Opcodes.INVOKESPECIAL, getInvokedMethod(), itf));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java b/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java
index eb0b6c7..a57c585 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java
@@ -24,7 +24,6 @@
import java.util.Collection;
import java.util.List;
import java.util.function.Predicate;
-import org.objectweb.asm.Opcodes;
public class InvokeVirtual extends InvokeMethodWithReceiver {
@@ -33,6 +32,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.INVOKE_VIRTUAL;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -110,7 +114,7 @@
@Override
public void buildCf(CfBuilder builder) {
- builder.add(new CfInvoke(Opcodes.INVOKEVIRTUAL, getInvokedMethod(), false));
+ builder.add(new CfInvoke(org.objectweb.asm.Opcodes.INVOKEVIRTUAL, getInvokedMethod(), false));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/Load.java b/src/main/java/com/android/tools/r8/ir/code/Load.java
index d87d64a..e1885b0 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Load.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Load.java
@@ -23,6 +23,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.LOAD;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Monitor.java b/src/main/java/com/android/tools/r8/ir/code/Monitor.java
index 702c66b..a0eda99 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Monitor.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Monitor.java
@@ -33,6 +33,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.MONITOR;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Move.java b/src/main/java/com/android/tools/r8/ir/code/Move.java
index 340b7fb..b962d22 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Move.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Move.java
@@ -24,6 +24,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.MOVE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/MoveException.java b/src/main/java/com/android/tools/r8/ir/code/MoveException.java
index 7f94264..143227a 100644
--- a/src/main/java/com/android/tools/r8/ir/code/MoveException.java
+++ b/src/main/java/com/android/tools/r8/ir/code/MoveException.java
@@ -27,6 +27,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.MOVE_EXCEPTION;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Mul.java b/src/main/java/com/android/tools/r8/ir/code/Mul.java
index b6b3ece..dcc8e1b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Mul.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Mul.java
@@ -23,6 +23,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.MUL;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Neg.java b/src/main/java/com/android/tools/r8/ir/code/Neg.java
index f0bc717..41ec4f1 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Neg.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Neg.java
@@ -28,6 +28,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.NEG;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java b/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java
index 2df55ed..6d2d5df 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java
+++ b/src/main/java/com/android/tools/r8/ir/code/NewArrayEmpty.java
@@ -27,6 +27,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.NEW_ARRAY_EMPTY;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/NewArrayFilledData.java b/src/main/java/com/android/tools/r8/ir/code/NewArrayFilledData.java
index 2a2e2c8..226b771 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NewArrayFilledData.java
+++ b/src/main/java/com/android/tools/r8/ir/code/NewArrayFilledData.java
@@ -34,6 +34,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.NEW_ARRAY_FILLED_DATA;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/NewInstance.java b/src/main/java/com/android/tools/r8/ir/code/NewInstance.java
index bbb6125..6b4b02b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NewInstance.java
+++ b/src/main/java/com/android/tools/r8/ir/code/NewInstance.java
@@ -34,6 +34,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.NEW_INSTANCE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Not.java b/src/main/java/com/android/tools/r8/ir/code/Not.java
index c5d9970..0ab5c78 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Not.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Not.java
@@ -26,6 +26,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.NOT;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/NumberConversion.java b/src/main/java/com/android/tools/r8/ir/code/NumberConversion.java
index 77394b1..99adf0c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NumberConversion.java
+++ b/src/main/java/com/android/tools/r8/ir/code/NumberConversion.java
@@ -39,6 +39,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.NUMBER_CONVERSION;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Opcodes.java b/src/main/java/com/android/tools/r8/ir/code/Opcodes.java
new file mode 100644
index 0000000..65a09d6
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/ir/code/Opcodes.java
@@ -0,0 +1,75 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.ir.code;
+
+public interface Opcodes {
+
+ int ADD = 0;
+ int ALWAYS_MATERIALIZING_DEFINITION = 1;
+ int ALWAYS_MATERIALIZING_NOP = 2;
+ int ALWAYS_MATERIALIZING_USER = 3;
+ int AND = 4;
+ int ARGUMENT = 5;
+ int ARRAY_GET = 6;
+ int ARRAY_LENGTH = 7;
+ int ARRAY_PUT = 8;
+ int ASSUME = 9;
+ int CHECK_CAST = 10;
+ int CMP = 11;
+ int CONST_CLASS = 12;
+ int CONST_METHOD_HANDLE = 13;
+ int CONST_METHOD_TYPE = 14;
+ int CONST_NUMBER = 15;
+ int CONST_STRING = 16;
+ int DEBUG_LOCAL_READ = 17;
+ int DEBUG_LOCALS_CHANGE = 18;
+ int DEBUG_POSITION = 19;
+ int DEX_ITEM_BASED_CONST_STRING = 20;
+ int DIV = 21;
+ int DUP = 22;
+ int DUP2 = 23;
+ int GOTO = 24;
+ int IF = 25;
+ int INC = 26;
+ int INSTANCE_GET = 27;
+ int INSTANCE_OF = 28;
+ int INSTANCE_PUT = 29;
+ int INT_SWITCH = 30;
+ int INVOKE_CUSTOM = 31;
+ int INVOKE_DIRECT = 32;
+ int INVOKE_INTERFACE = 33;
+ int INVOKE_MULTI_NEW_ARRAY = 34;
+ int INVOKE_NEW_ARRAY = 35;
+ int INVOKE_POLYMORPHIC = 36;
+ int INVOKE_STATIC = 37;
+ int INVOKE_SUPER = 38;
+ int INVOKE_VIRTUAL = 39;
+ int LOAD = 40;
+ int MONITOR = 41;
+ int MOVE = 42;
+ int MOVE_EXCEPTION = 43;
+ int MUL = 44;
+ int NEG = 45;
+ int NEW_ARRAY_EMPTY = 46;
+ int NEW_ARRAY_FILLED_DATA = 47;
+ int NEW_INSTANCE = 48;
+ int NOT = 49;
+ int NUMBER_CONVERSION = 50;
+ int OR = 51;
+ int POP = 52;
+ int REM = 53;
+ int RETURN = 54;
+ int SHL = 55;
+ int SHR = 56;
+ int STATIC_GET = 57;
+ int STATIC_PUT = 58;
+ int STORE = 59;
+ int STRING_SWITCH = 60;
+ int SUB = 61;
+ int SWAP = 62;
+ int THROW = 63;
+ int USHR = 64;
+ int XOR = 65;
+}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Or.java b/src/main/java/com/android/tools/r8/ir/code/Or.java
index 78330a4..a17cb7f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Or.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Or.java
@@ -19,6 +19,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.OR;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Pop.java b/src/main/java/com/android/tools/r8/ir/code/Pop.java
index 7c36298..ab07480 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Pop.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Pop.java
@@ -20,6 +20,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.POP;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Rem.java b/src/main/java/com/android/tools/r8/ir/code/Rem.java
index f0eb1ca..f6f40fa 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Rem.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Rem.java
@@ -25,6 +25,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.REM;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Return.java b/src/main/java/com/android/tools/r8/ir/code/Return.java
index 9ac794c..037f856 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Return.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Return.java
@@ -29,6 +29,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.RETURN;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Shl.java b/src/main/java/com/android/tools/r8/ir/code/Shl.java
index 719abf0..b297552 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Shl.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Shl.java
@@ -18,6 +18,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.SHL;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Shr.java b/src/main/java/com/android/tools/r8/ir/code/Shr.java
index 036bdbc..36ff98b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Shr.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Shr.java
@@ -18,6 +18,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.SHR;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/StaticGet.java b/src/main/java/com/android/tools/r8/ir/code/StaticGet.java
index b3193a6..8aba2aa 100644
--- a/src/main/java/com/android/tools/r8/ir/code/StaticGet.java
+++ b/src/main/java/com/android/tools/r8/ir/code/StaticGet.java
@@ -28,7 +28,6 @@
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.InliningConstraints;
import java.util.Set;
-import org.objectweb.asm.Opcodes;
public class StaticGet extends FieldInstruction {
@@ -37,6 +36,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.STATIC_GET;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -177,7 +181,8 @@
@Override
public void buildCf(CfBuilder builder) {
builder.add(
- new CfFieldInstruction(Opcodes.GETSTATIC, getField(), builder.resolveField(getField())));
+ new CfFieldInstruction(
+ org.objectweb.asm.Opcodes.GETSTATIC, getField(), builder.resolveField(getField())));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/StaticPut.java b/src/main/java/com/android/tools/r8/ir/code/StaticPut.java
index 3da48a2..22192f2 100644
--- a/src/main/java/com/android/tools/r8/ir/code/StaticPut.java
+++ b/src/main/java/com/android/tools/r8/ir/code/StaticPut.java
@@ -28,7 +28,6 @@
import com.android.tools.r8.ir.regalloc.RegisterAllocator;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.ProguardMemberRule;
-import org.objectweb.asm.Opcodes;
public class StaticPut extends FieldInstruction {
@@ -37,6 +36,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.STATIC_PUT;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
@@ -199,7 +203,8 @@
@Override
public void buildCf(CfBuilder builder) {
builder.add(
- new CfFieldInstruction(Opcodes.PUTSTATIC, getField(), builder.resolveField(getField())));
+ new CfFieldInstruction(
+ org.objectweb.asm.Opcodes.PUTSTATIC, getField(), builder.resolveField(getField())));
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/Store.java b/src/main/java/com/android/tools/r8/ir/code/Store.java
index 804f64c..72eb683 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Store.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Store.java
@@ -24,6 +24,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.STORE;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/StringSwitch.java b/src/main/java/com/android/tools/r8/ir/code/StringSwitch.java
index 6f454ad..1b3d673 100644
--- a/src/main/java/com/android/tools/r8/ir/code/StringSwitch.java
+++ b/src/main/java/com/android/tools/r8/ir/code/StringSwitch.java
@@ -24,6 +24,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.STRING_SWITCH;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Sub.java b/src/main/java/com/android/tools/r8/ir/code/Sub.java
index 74c8517..e161b8e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Sub.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Sub.java
@@ -28,6 +28,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.SUB;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Swap.java b/src/main/java/com/android/tools/r8/ir/code/Swap.java
index 3d9d3cc..8cdaa77 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Swap.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Swap.java
@@ -30,6 +30,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.SWAP;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Throw.java b/src/main/java/com/android/tools/r8/ir/code/Throw.java
index 7d2a9d5..8a513c2 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Throw.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Throw.java
@@ -21,6 +21,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.THROW;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Ushr.java b/src/main/java/com/android/tools/r8/ir/code/Ushr.java
index b7a5406..5de1830 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Ushr.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Ushr.java
@@ -18,6 +18,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.USHR;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Xor.java b/src/main/java/com/android/tools/r8/ir/code/Xor.java
index 3cf845a..dce5686 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Xor.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Xor.java
@@ -19,6 +19,11 @@
}
@Override
+ public int opcode() {
+ return Opcodes.XOR;
+ }
+
+ @Override
public <T> T accept(InstructionVisitor<T> visitor) {
return visitor.visit(this);
}