summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dx/src/com/android/dx/dex/code/HighRegisterPrefix.java33
-rw-r--r--dx/src/com/android/dx/rop/code/RegisterSpecList.java24
2 files changed, 6 insertions, 51 deletions
diff --git a/dx/src/com/android/dx/dex/code/HighRegisterPrefix.java b/dx/src/com/android/dx/dex/code/HighRegisterPrefix.java
index cfc30324a..060743e6a 100644
--- a/dx/src/com/android/dx/dex/code/HighRegisterPrefix.java
+++ b/dx/src/com/android/dx/dex/code/HighRegisterPrefix.java
@@ -16,7 +16,6 @@
package com.android.dx.dex.code;
-import com.android.dx.dex.DexOptions;
import com.android.dx.rop.code.RegisterSpec;
import com.android.dx.rop.code.RegisterSpecList;
import com.android.dx.rop.code.SourcePosition;
@@ -89,34 +88,10 @@ public final class HighRegisterPrefix extends VariableSizeInsn {
insns = new SimpleInsn[sz];
- if (DexOptions.ALIGN_64BIT_REGS_SUPPORT) {
- int outAt = 0;
-
- // Insert mov instructions to transfer registers which are not compatible with an instruction
- // into compatible registers. Compatible registers start at 0 until registers.getWordCount().
- // 64-bit registers are low numbered in order to align them on even registers, and numbering
- // of 32-bit registers start after the last number of 64-bit register.
- for (int i = 0; i < sz; i++) {
- RegisterSpec src = registers.get(i);
- if (src.isCategory2()) {
- insns[i] = moveInsnFor(src, outAt);
- outAt += src.getCategory();
- }
- }
-
- for (int i = 0; i < sz; i++) {
- RegisterSpec src = registers.get(i);
- if (src.isCategory1()) {
- insns[i] = moveInsnFor(src, outAt);
- outAt += src.getCategory();
- }
- }
- } else {
- for (int i = 0, outAt = 0; i < sz; i++) {
- RegisterSpec src = registers.get(i);
- insns[i] = moveInsnFor(src, outAt);
- outAt += src.getCategory();
- }
+ for (int i = 0, outAt = 0; i < sz; i++) {
+ RegisterSpec src = registers.get(i);
+ insns[i] = moveInsnFor(src, outAt);
+ outAt += src.getCategory();
}
}
diff --git a/dx/src/com/android/dx/rop/code/RegisterSpecList.java b/dx/src/com/android/dx/rop/code/RegisterSpecList.java
index 2a136cab8..d89d5acb8 100644
--- a/dx/src/com/android/dx/rop/code/RegisterSpecList.java
+++ b/dx/src/com/android/dx/rop/code/RegisterSpecList.java
@@ -16,7 +16,6 @@
package com.android.dx.rop.code;
-import com.android.dx.dex.DexOptions;
import com.android.dx.rop.type.Type;
import com.android.dx.rop.type.TypeList;
import com.android.dx.util.FixedSizeList;
@@ -382,27 +381,8 @@ public final class RegisterSpecList
Expander expander = new Expander(this, compatRegs, base, duplicateFirst);
- if (DexOptions.ALIGN_64BIT_REGS_SUPPORT) {
- // Numbering done into HighRegisterPrefix starts by allocating 64-bit registers and
- // thereafter adding 32-bit registers. Since the number of the first 32-bit register is
- // unknown, 64-bit registers must be managed first.
- for (int regIdx = 0; regIdx < sz; regIdx++) {
- RegisterSpec reg = (RegisterSpec) get0(regIdx);
- if (reg.isCategory2()) {
- expander.expandRegister(regIdx, reg);
- }
- }
-
- for (int regIdx = 0; regIdx < sz; regIdx++) {
- RegisterSpec reg = (RegisterSpec) get0(regIdx);
- if (reg.isCategory1()) {
- expander.expandRegister(regIdx, reg);
- }
- }
- } else {
- for (int regIdx = 0; regIdx < sz; regIdx++) {
- expander.expandRegister(regIdx);
- }
+ for (int regIdx = 0; regIdx < sz; regIdx++) {
+ expander.expandRegister(regIdx);
}
return expander.getResult();