Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index 7ee0d39d4ebab1f5cec485c35eaaad820345b92d..31cc5a28cd1cbd193b95b7fc20ce68a511026fb3 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -3636,13 +3636,13 @@ void MathPowStub::Generate(MacroAssembler* masm) { |
Label not_plus_half; |
// Test for 0.5. |
- __ vmov(double_scratch, 0.5, scratch); |
+ __ vmov(double_scratch, 0.5); |
__ VFPCompareAndSetFlags(double_exponent, double_scratch); |
__ b(ne, ¬_plus_half); |
// Calculates square root of base. Check for the special case of |
// Math.pow(-Infinity, 0.5) == Infinity (ECMA spec, 15.8.2.13). |
- __ vmov(double_scratch, -V8_INFINITY, scratch); |
+ __ vmov(double_scratch, -V8_INFINITY); |
__ VFPCompareAndSetFlags(double_base, double_scratch); |
__ vneg(double_result, double_scratch, eq); |
__ b(eq, &done); |
@@ -3653,20 +3653,20 @@ void MathPowStub::Generate(MacroAssembler* masm) { |
__ jmp(&done); |
__ bind(¬_plus_half); |
- __ vmov(double_scratch, -0.5, scratch); |
+ __ vmov(double_scratch, -0.5); |
__ VFPCompareAndSetFlags(double_exponent, double_scratch); |
__ b(ne, &call_runtime); |
// Calculates square root of base. Check for the special case of |
// Math.pow(-Infinity, -0.5) == 0 (ECMA spec, 15.8.2.13). |
- __ vmov(double_scratch, -V8_INFINITY, scratch); |
+ __ vmov(double_scratch, -V8_INFINITY); |
__ VFPCompareAndSetFlags(double_base, double_scratch); |
__ vmov(double_result, kDoubleRegZero, eq); |
__ b(eq, &done); |
// Add +0 to convert -0 to +0. |
__ vadd(double_scratch, double_base, kDoubleRegZero); |
- __ vmov(double_result, 1.0, scratch); |
+ __ vmov(double_result, 1.0); |
__ vsqrt(double_scratch, double_scratch); |
__ vdiv(double_result, double_result, double_scratch); |
__ jmp(&done); |
@@ -3701,7 +3701,7 @@ void MathPowStub::Generate(MacroAssembler* masm) { |
__ mov(exponent, scratch); |
} |
__ vmov(double_scratch, double_base); // Back up base. |
- __ vmov(double_result, 1.0, scratch2); |
+ __ vmov(double_result, 1.0); |
// Get absolute value of exponent. |
__ cmp(scratch, Operand(0)); |
@@ -3717,7 +3717,7 @@ void MathPowStub::Generate(MacroAssembler* masm) { |
__ cmp(exponent, Operand(0)); |
__ b(ge, &done); |
- __ vmov(double_scratch, 1.0, scratch); |
+ __ vmov(double_scratch, 1.0); |
__ vdiv(double_result, double_scratch, double_result); |
// Test whether result is zero. Bail out to check for subnormal result. |
// Due to subnormals, x^-y == (1/x)^y does not hold in all cases. |
@@ -7262,7 +7262,6 @@ static const AheadOfTimeWriteBarrierStubList kAheadOfTime[] = { |
#undef REG |
- |
bool RecordWriteStub::IsPregenerated() { |
for (const AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; |
!entry->object.is(no_reg); |
@@ -7304,11 +7303,6 @@ void RecordWriteStub::GenerateFixedRegStubsAheadOfTime() { |
} |
-bool CodeStub::CanUseFPRegisters() { |
- return CpuFeatures::IsSupported(VFP2); |
-} |
- |
- |
// Takes the input in 3 registers: address_ value_ and object_. A pointer to |
// the value has just been written into the object, now this stub makes sure |
// we keep the GC informed. The word in the object where the value has been |
@@ -7437,16 +7431,6 @@ void RecordWriteStub::CheckNeedsToInformIncrementalMarker( |
Label need_incremental; |
Label need_incremental_pop_scratch; |
- __ and_(regs_.scratch0(), regs_.object(), Operand(~Page::kPageAlignmentMask)); |
- __ ldr(regs_.scratch1(), |
- MemOperand(regs_.scratch0(), |
- MemoryChunk::kWriteBarrierCounterOffset)); |
- __ sub(regs_.scratch1(), regs_.scratch1(), Operand(1), SetCC); |
- __ str(regs_.scratch1(), |
- MemOperand(regs_.scratch0(), |
- MemoryChunk::kWriteBarrierCounterOffset)); |
- __ b(mi, &need_incremental); |
- |
// Let's look at the color of the object: If it is not black we don't have |
// to inform the incremental marker. |
__ JumpIfBlack(regs_.object(), regs_.scratch0(), regs_.scratch1(), &on_black); |
@@ -7567,9 +7551,7 @@ void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { |
// Array literal has ElementsKind of FAST_DOUBLE_ELEMENTS. |
__ bind(&double_elements); |
__ ldr(r5, FieldMemOperand(r1, JSObject::kElementsOffset)); |
- __ StoreNumberToDoubleElements(r0, r3, r1, |
- // Overwrites all regs after this. |
- r5, r6, r7, r9, r2, |
+ __ StoreNumberToDoubleElements(r0, r3, r1, r5, r6, r7, r9, r2, |
&slow_elements); |
__ Ret(); |
} |