Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index bacf570c3b5fec5b01d7ff98732e57726e939b21..73ae68285acc6d0e033e95fec84359a02e111819 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -291,8 +291,6 @@ void MacroAssembler::Move(Register dst, Register src, Condition cond) { |
void MacroAssembler::Move(DwVfpRegister dst, DwVfpRegister src) { |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
- CpuFeatureScope scope(this, VFP2); |
if (!dst.is(src)) { |
vmov(dst, src); |
} |
@@ -811,7 +809,6 @@ void MacroAssembler::VFPCompareAndLoadFlags(const DwVfpRegister src1, |
void MacroAssembler::Vmov(const DwVfpRegister dst, |
const double imm, |
const Register scratch) { |
- ASSERT(IsEnabled(VFP2)); |
static const DoubleRepresentation minus_zero(-0.0); |
static const DoubleRepresentation zero(0.0); |
DoubleRepresentation value(imm); |
@@ -873,7 +870,6 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) { |
// Optionally save all double registers. |
if (save_doubles) { |
- CpuFeatureScope scope(this, VFP2); |
// Check CPU flags for number of registers, setting the Z condition flag. |
CheckFor32DRegs(ip); |
@@ -938,7 +934,6 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles, |
Register argument_count) { |
// Optionally restore all double registers. |
if (save_doubles) { |
- CpuFeatureScope scope(this, VFP2); |
// Calculate the stack location of the saved doubles and restore them. |
const int offset = 2 * kPointerSize; |
sub(r3, fp, |
@@ -975,7 +970,6 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles, |
} |
void MacroAssembler::GetCFunctionDoubleResult(const DwVfpRegister dst) { |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
if (use_eabi_hardfloat()) { |
Move(dst, d0); |
} else { |
@@ -2048,11 +2042,7 @@ void MacroAssembler::StoreNumberToDoubleElements(Register value_reg, |
// scratch1 is now effective address of the double element |
FloatingPointHelper::Destination destination; |
- if (CpuFeatures::IsSupported(VFP2)) { |
- destination = FloatingPointHelper::kVFPRegisters; |
- } else { |
- destination = FloatingPointHelper::kCoreRegisters; |
- } |
+ destination = FloatingPointHelper::kVFPRegisters; |
Register untagged_value = elements_reg; |
SmiUntag(untagged_value, value_reg); |
@@ -2065,7 +2055,6 @@ void MacroAssembler::StoreNumberToDoubleElements(Register value_reg, |
scratch4, |
s2); |
if (destination == FloatingPointHelper::kVFPRegisters) { |
- CpuFeatureScope scope(this, VFP2); |
vstr(d0, scratch1, 0); |
} else { |
str(mantissa_reg, MemOperand(scratch1, 0)); |
@@ -2425,9 +2414,6 @@ void MacroAssembler::SmiToDoubleVFPRegister(Register smi, |
void MacroAssembler::TestDoubleIsInt32(DwVfpRegister double_input, |
DwVfpRegister double_scratch) { |
ASSERT(!double_input.is(double_scratch)); |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
- CpuFeatureScope scope(this, VFP2); |
- |
vcvt_s32_f64(double_scratch.low(), double_input); |
vcvt_f64_s32(double_scratch, double_scratch.low()); |
VFPCompareAndSetFlags(double_input, double_scratch); |
@@ -2438,9 +2424,6 @@ void MacroAssembler::TryDoubleToInt32Exact(Register result, |
DwVfpRegister double_input, |
DwVfpRegister double_scratch) { |
ASSERT(!double_input.is(double_scratch)); |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
- CpuFeatureScope scope(this, VFP2); |
- |
vcvt_s32_f64(double_scratch.low(), double_input); |
vmov(result, double_scratch.low()); |
vcvt_f64_s32(double_scratch, double_scratch.low()); |
@@ -2456,8 +2439,6 @@ void MacroAssembler::TryInt32Floor(Register result, |
Label* exact) { |
ASSERT(!result.is(input_high)); |
ASSERT(!double_input.is(double_scratch)); |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
- CpuFeatureScope scope(this, VFP2); |
Label negative, exception; |
// Test for NaN and infinities. |
@@ -2502,16 +2483,9 @@ void MacroAssembler::ECMAConvertNumberToInt32(Register source, |
Register scratch, |
DwVfpRegister double_scratch1, |
DwVfpRegister double_scratch2) { |
- if (CpuFeatures::IsSupported(VFP2)) { |
- CpuFeatureScope scope(this, VFP2); |
- vldr(double_scratch1, FieldMemOperand(source, HeapNumber::kValueOffset)); |
- ECMAToInt32VFP(result, double_scratch1, double_scratch2, |
- scratch, input_high, input_low); |
- } else { |
- Ldrd(input_low, input_high, |
- FieldMemOperand(source, HeapNumber::kValueOffset)); |
- ECMAToInt32NoVFP(result, scratch, input_high, input_low); |
- } |
+ vldr(double_scratch1, FieldMemOperand(source, HeapNumber::kValueOffset)); |
+ ECMAToInt32VFP(result, double_scratch1, double_scratch2, |
+ scratch, input_high, input_low); |
} |
@@ -2521,7 +2495,6 @@ void MacroAssembler::ECMAToInt32VFP(Register result, |
Register scratch, |
Register input_high, |
Register input_low) { |
- CpuFeatureScope scope(this, VFP2); |
ASSERT(!input_high.is(result)); |
ASSERT(!input_low.is(result)); |
ASSERT(!input_low.is(input_high)); |
@@ -2715,10 +2688,7 @@ void MacroAssembler::CallRuntimeSaveDoubles(Runtime::FunctionId id) { |
const Runtime::Function* function = Runtime::FunctionForId(id); |
mov(r0, Operand(function->nargs)); |
mov(r1, Operand(ExternalReference(function, isolate()))); |
- SaveFPRegsMode mode = CpuFeatures::IsSupported(VFP2) |
- ? kSaveFPRegs |
- : kDontSaveFPRegs; |
- CEntryStub stub(1, mode); |
+ CEntryStub stub(1, kSaveFPRegs); |
CallStub(&stub); |
} |
@@ -3463,7 +3433,6 @@ void MacroAssembler::PrepareCallCFunction(int num_reg_arguments, |
void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg) { |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
if (use_eabi_hardfloat()) { |
Move(d0, dreg); |
} else { |
@@ -3474,7 +3443,6 @@ void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg) { |
void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg1, |
DwVfpRegister dreg2) { |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
if (use_eabi_hardfloat()) { |
if (dreg2.is(d0)) { |
ASSERT(!dreg1.is(d1)); |
@@ -3493,7 +3461,6 @@ void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg1, |
void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg, |
Register reg) { |
- ASSERT(CpuFeatures::IsSupported(VFP2)); |
if (use_eabi_hardfloat()) { |
Move(d0, dreg); |
Move(r0, reg); |