ART: Remove old code
Remove unused Quick compiler flag.
Remove support for arm32 soft-float code (which is no longer
supported by our compiler).
Test: m
Change-Id: I38b16291d90094dbf26776923a46afbf8de53f20
diff --git a/compiler/jni/quick/arm/calling_convention_arm.cc b/compiler/jni/quick/arm/calling_convention_arm.cc
index 7e1ad9f..3e637bc 100644
--- a/compiler/jni/quick/arm/calling_convention_arm.cc
+++ b/compiler/jni/quick/arm/calling_convention_arm.cc
@@ -125,18 +125,7 @@
}
ManagedRegister ArmManagedRuntimeCallingConvention::ReturnRegister() {
- if (kArm32QuickCodeUseSoftFloat) {
- switch (GetShorty()[0]) {
- case 'V':
- return ArmManagedRegister::NoRegister();
- case 'D':
- case 'J':
- return ArmManagedRegister::FromRegisterPair(R0_R1);
- default:
- return ArmManagedRegister::FromCoreRegister(R0);
- }
- } else {
- switch (GetShorty()[0]) {
+ switch (GetShorty()[0]) {
case 'V':
return ArmManagedRegister::NoRegister();
case 'D':
@@ -147,7 +136,6 @@
return ArmManagedRegister::FromRegisterPair(R0_R1);
default:
return ArmManagedRegister::FromCoreRegister(R0);
- }
}
}
@@ -198,80 +186,65 @@
const ManagedRegisterEntrySpills& ArmManagedRuntimeCallingConvention::EntrySpills() {
// We spill the argument registers on ARM to free them up for scratch use, we then assume
// all arguments are on the stack.
- if (kArm32QuickCodeUseSoftFloat) {
- if (entry_spills_.size() == 0) {
- size_t num_spills = NumArgs() + NumLongOrDoubleArgs();
- if (num_spills > 0) {
- entry_spills_.push_back(ArmManagedRegister::FromCoreRegister(R1));
- if (num_spills > 1) {
- entry_spills_.push_back(ArmManagedRegister::FromCoreRegister(R2));
- if (num_spills > 2) {
- entry_spills_.push_back(ArmManagedRegister::FromCoreRegister(R3));
- }
- }
- }
- }
- } else {
- if ((entry_spills_.size() == 0) && (NumArgs() > 0)) {
- uint32_t gpr_index = 1; // R0 ~ R3. Reserve r0 for ArtMethod*.
- uint32_t fpr_index = 0; // S0 ~ S15.
- uint32_t fpr_double_index = 0; // D0 ~ D7.
+ if ((entry_spills_.size() == 0) && (NumArgs() > 0)) {
+ uint32_t gpr_index = 1; // R0 ~ R3. Reserve r0 for ArtMethod*.
+ uint32_t fpr_index = 0; // S0 ~ S15.
+ uint32_t fpr_double_index = 0; // D0 ~ D7.
- ResetIterator(FrameOffset(0));
- while (HasNext()) {
- if (IsCurrentParamAFloatOrDouble()) {
- if (IsCurrentParamADouble()) { // Double.
- // Double should not overlap with float.
- fpr_double_index = (std::max(fpr_double_index * 2, RoundUp(fpr_index, 2))) / 2;
- if (fpr_double_index < arraysize(kHFDArgumentRegisters)) {
- entry_spills_.push_back(
- ArmManagedRegister::FromDRegister(kHFDArgumentRegisters[fpr_double_index++]));
- } else {
- entry_spills_.push_back(ManagedRegister::NoRegister(), 8);
- }
- } else { // Float.
- // Float should not overlap with double.
- if (fpr_index % 2 == 0) {
- fpr_index = std::max(fpr_double_index * 2, fpr_index);
- }
- if (fpr_index < arraysize(kHFSArgumentRegisters)) {
- entry_spills_.push_back(
- ArmManagedRegister::FromSRegister(kHFSArgumentRegisters[fpr_index++]));
- } else {
- entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
- }
- }
- } else {
- // FIXME: Pointer this returns as both reference and long.
- if (IsCurrentParamALong() && !IsCurrentParamAReference()) { // Long.
- if (gpr_index < arraysize(kHFCoreArgumentRegisters) - 1) {
- // Skip R1, and use R2_R3 if the long is the first parameter.
- if (gpr_index == 1) {
- gpr_index++;
- }
- }
-
- // If it spans register and memory, we must use the value in memory.
- if (gpr_index < arraysize(kHFCoreArgumentRegisters) - 1) {
- entry_spills_.push_back(
- ArmManagedRegister::FromCoreRegister(kHFCoreArgumentRegisters[gpr_index++]));
- } else if (gpr_index == arraysize(kHFCoreArgumentRegisters) - 1) {
- gpr_index++;
- entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
- } else {
- entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
- }
- }
- // High part of long or 32-bit argument.
- if (gpr_index < arraysize(kHFCoreArgumentRegisters)) {
+ ResetIterator(FrameOffset(0));
+ while (HasNext()) {
+ if (IsCurrentParamAFloatOrDouble()) {
+ if (IsCurrentParamADouble()) { // Double.
+ // Double should not overlap with float.
+ fpr_double_index = (std::max(fpr_double_index * 2, RoundUp(fpr_index, 2))) / 2;
+ if (fpr_double_index < arraysize(kHFDArgumentRegisters)) {
entry_spills_.push_back(
- ArmManagedRegister::FromCoreRegister(kHFCoreArgumentRegisters[gpr_index++]));
+ ArmManagedRegister::FromDRegister(kHFDArgumentRegisters[fpr_double_index++]));
+ } else {
+ entry_spills_.push_back(ManagedRegister::NoRegister(), 8);
+ }
+ } else { // Float.
+ // Float should not overlap with double.
+ if (fpr_index % 2 == 0) {
+ fpr_index = std::max(fpr_double_index * 2, fpr_index);
+ }
+ if (fpr_index < arraysize(kHFSArgumentRegisters)) {
+ entry_spills_.push_back(
+ ArmManagedRegister::FromSRegister(kHFSArgumentRegisters[fpr_index++]));
} else {
entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
}
}
- Next();
+ } else {
+ // FIXME: Pointer this returns as both reference and long.
+ if (IsCurrentParamALong() && !IsCurrentParamAReference()) { // Long.
+ if (gpr_index < arraysize(kHFCoreArgumentRegisters) - 1) {
+ // Skip R1, and use R2_R3 if the long is the first parameter.
+ if (gpr_index == 1) {
+ gpr_index++;
+ }
+ }
+
+ // If it spans register and memory, we must use the value in memory.
+ if (gpr_index < arraysize(kHFCoreArgumentRegisters) - 1) {
+ entry_spills_.push_back(
+ ArmManagedRegister::FromCoreRegister(kHFCoreArgumentRegisters[gpr_index++]));
+ } else if (gpr_index == arraysize(kHFCoreArgumentRegisters) - 1) {
+ gpr_index++;
+ entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
+ } else {
+ entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
+ }
+ }
+ // High part of long or 32-bit argument.
+ if (gpr_index < arraysize(kHFCoreArgumentRegisters)) {
+ entry_spills_.push_back(
+ ArmManagedRegister::FromCoreRegister(kHFCoreArgumentRegisters[gpr_index++]));
+ } else {
+ entry_spills_.push_back(ManagedRegister::NoRegister(), 4);
+ }
}
+ Next();
}
}
return entry_spills_;
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 73b0fa2..e128a15 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -434,9 +434,9 @@
}
static bool IsInstructionSetSupported(InstructionSet instruction_set) {
- return (instruction_set == kArm && !kArm32QuickCodeUseSoftFloat)
+ return instruction_set == kArm
|| instruction_set == kArm64
- || (instruction_set == kThumb2 && !kArm32QuickCodeUseSoftFloat)
+ || instruction_set == kThumb2
|| instruction_set == kMips
|| instruction_set == kMips64
|| instruction_set == kX86