Merge "Compiler specific compilation result"
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 0932e62..640d24c 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,7 +27,7 @@
 
   @Override
   public void buildCf(CfBuilder builder) {
-    if (this.inValues.get(0).type == ValueType.LONG_OR_DOUBLE) {
+    if (this.inValues.get(0).type.isWide()) {
       builder.add(new CfStackInstruction(Opcode.Dup2));
     } else {
       builder.add(new CfStackInstruction(Opcode.Dup));
diff --git a/src/main/java/com/android/tools/r8/ir/code/StackValue.java b/src/main/java/com/android/tools/r8/ir/code/StackValue.java
index d9dabef..fdff15e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/StackValue.java
+++ b/src/main/java/com/android/tools/r8/ir/code/StackValue.java
@@ -38,6 +38,10 @@
     return objectType;
   }
 
+  public StackValue duplicate(int height) {
+    return new StackValue(this.objectType, this.type.toTypeLattice(), height);
+  }
+
   @Override
   public boolean needsRegister() {
     return false;