Merge "[CF] Even align index of locals to avoid overlap between single and wide."
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 cb5b445..8c00fcc 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
@@ -128,7 +128,7 @@
}
}
assert currentStack == 0;
- return new CfCode(maxStack, maxLocalNumber + 1, instructions);
+ return new CfCode(maxStack, 2 * (maxLocalNumber + 1), instructions);
}
// Callbacks