commit | 734c7465cbc79d98a4c52df4de4eb206fc2d5212 | [log] [tgz] |
---|---|---|
author | Morten Krogh-Jespersen <mkroghj@google.com> | Tue Oct 16 12:06:27 2018 +0200 |
committer | Morten Krogh-Jespersen <mkroghj@google.com> | Tue Oct 16 12:06:27 2018 +0200 |
tree | 7c6ebf159e2bd8df6511a9fb6bc119bb88e9cbc9 | |
parent | 63a15ca03b29937206a09f5f51509afc592b33c0 [diff] |
Fix type of dup instruction Change-Id: Ib03565e1f36aefd2a741936d8d9306c189b00c91
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;