Index: src/arm/deoptimizer-arm.cc |
diff --git a/src/arm/deoptimizer-arm.cc b/src/arm/deoptimizer-arm.cc |
index 9bcc1ac14c0e467a67a0bffdc0565aa46ec15bff..3b50ad4ae4d2bb84c6736cc67487d1ecb8d76b02 100644 |
--- a/src/arm/deoptimizer-arm.cc |
+++ b/src/arm/deoptimizer-arm.cc |
@@ -594,23 +594,18 @@ void Deoptimizer::EntryGenerator::Generate() { |
const int kDoubleRegsSize = |
kDoubleSize * DwVfpRegister::kMaxNumAllocatableRegisters; |
- if (CpuFeatures::IsSupported(VFP2)) { |
- CpuFeatureScope scope(masm(), VFP2); |
- // Save all allocatable VFP registers before messing with them. |
- ASSERT(kDoubleRegZero.code() == 14); |
- ASSERT(kScratchDoubleReg.code() == 15); |
- |
- // Check CPU flags for number of registers, setting the Z condition flag. |
- __ CheckFor32DRegs(ip); |
- |
- // Push registers d0-d13, and possibly d16-d31, on the stack. |
- // If d16-d31 are not pushed, decrease the stack pointer instead. |
- __ vstm(db_w, sp, d16, d31, ne); |
- __ sub(sp, sp, Operand(16 * kDoubleSize), LeaveCC, eq); |
- __ vstm(db_w, sp, d0, d13); |
- } else { |
- __ sub(sp, sp, Operand(kDoubleRegsSize)); |
- } |
+ // Save all allocatable VFP registers before messing with them. |
+ ASSERT(kDoubleRegZero.code() == 14); |
+ ASSERT(kScratchDoubleReg.code() == 15); |
+ |
+ // Check CPU flags for number of registers, setting the Z condition flag. |
+ __ CheckFor32DRegs(ip); |
+ |
+ // Push registers d0-d13, and possibly d16-d31, on the stack. |
+ // If d16-d31 are not pushed, decrease the stack pointer instead. |
+ __ vstm(db_w, sp, d16, d31, ne); |
+ __ sub(sp, sp, Operand(16 * kDoubleSize), LeaveCC, eq); |
+ __ vstm(db_w, sp, d0, d13); |
// Push all 16 registers (needed to populate FrameDescription::registers_). |
// TODO(1588) Note that using pc with stm is deprecated, so we should perhaps |
@@ -669,17 +664,14 @@ void Deoptimizer::EntryGenerator::Generate() { |
__ str(r2, MemOperand(r1, offset)); |
} |
- if (CpuFeatures::IsSupported(VFP2)) { |
- CpuFeatureScope scope(masm(), VFP2); |
- // Copy VFP registers to |
- // double_registers_[DoubleRegister::kMaxNumAllocatableRegisters] |
- int double_regs_offset = FrameDescription::double_registers_offset(); |
- for (int i = 0; i < DwVfpRegister::kMaxNumAllocatableRegisters; ++i) { |
- int dst_offset = i * kDoubleSize + double_regs_offset; |
- int src_offset = i * kDoubleSize + kNumberOfRegisters * kPointerSize; |
- __ vldr(d0, sp, src_offset); |
- __ vstr(d0, r1, dst_offset); |
- } |
+ // Copy VFP registers to |
+ // double_registers_[DoubleRegister::kMaxNumAllocatableRegisters] |
+ int double_regs_offset = FrameDescription::double_registers_offset(); |
+ for (int i = 0; i < DwVfpRegister::kMaxNumAllocatableRegisters; ++i) { |
+ int dst_offset = i * kDoubleSize + double_regs_offset; |
+ int src_offset = i * kDoubleSize + kNumberOfRegisters * kPointerSize; |
+ __ vldr(d0, sp, src_offset); |
+ __ vstr(d0, r1, dst_offset); |
} |
// Remove the bailout id, eventually return address, and the saved registers |
@@ -749,21 +741,18 @@ void Deoptimizer::EntryGenerator::Generate() { |
__ cmp(r4, r1); |
__ b(lt, &outer_push_loop); |
- if (CpuFeatures::IsSupported(VFP2)) { |
- CpuFeatureScope scope(masm(), VFP2); |
- // Check CPU flags for number of registers, setting the Z condition flag. |
- __ CheckFor32DRegs(ip); |
+ // Check CPU flags for number of registers, setting the Z condition flag. |
+ __ CheckFor32DRegs(ip); |
- __ ldr(r1, MemOperand(r0, Deoptimizer::input_offset())); |
- int src_offset = FrameDescription::double_registers_offset(); |
- for (int i = 0; i < DwVfpRegister::kMaxNumRegisters; ++i) { |
- if (i == kDoubleRegZero.code()) continue; |
- if (i == kScratchDoubleReg.code()) continue; |
+ __ ldr(r1, MemOperand(r0, Deoptimizer::input_offset())); |
+ int src_offset = FrameDescription::double_registers_offset(); |
+ for (int i = 0; i < DwVfpRegister::kMaxNumRegisters; ++i) { |
+ if (i == kDoubleRegZero.code()) continue; |
+ if (i == kScratchDoubleReg.code()) continue; |
- const DwVfpRegister reg = DwVfpRegister::from_code(i); |
- __ vldr(reg, r1, src_offset, i < 16 ? al : ne); |
- src_offset += kDoubleSize; |
- } |
+ const DwVfpRegister reg = DwVfpRegister::from_code(i); |
+ __ vldr(reg, r1, src_offset, i < 16 ? al : ne); |
+ src_offset += kDoubleSize; |
} |
// Push state, pc, and continuation from the last output frame. |