[CF] Even align index of locals to avoid overlap between single and wide. This is temporary to just emit valid code. Register allocation will deal with allocating compact indexes later. R=ricow Change-Id: I33be89a4ba22a0869507aad7f58a4b0d3a55084c
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 a8bb95c..28d4165 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
@@ -44,6 +44,6 @@ @Override public void buildCf(CfBuilder builder) { Value value = inValues.get(0); - builder.add(new CfLoad(value.outType(), value.getNumber())); + builder.add(new CfLoad(value.outType(), 2 * value.getNumber())); } }
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 e5b90a3..2a22f28 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
@@ -43,6 +43,6 @@ @Override public void buildCf(CfBuilder builder) { - builder.add(new CfStore(outType(), outValue.getNumber())); + builder.add(new CfStore(outType(), 2 * outValue.getNumber())); } }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java index bc5df81..d29fe79 100644 --- a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java +++ b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
@@ -127,7 +127,7 @@ } } assert currentStack == 0; - return new CfCode(maxStack, maxLocalNumber + 1, instructions); + return new CfCode(maxStack, 2 * (maxLocalNumber + 1), instructions); } // Callbacks