| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 142abb5fd7babaf4529bb6e9dee821ec2310048b..1fdbaf11fd31ccdd4362e9ebe3500c18866b4565 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -1793,10 +1793,9 @@ void BinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) {
|
| if (result_type_ <= BinaryOpIC::INT32) {
|
| __ cvttsd2si(ecx, Operand(xmm0));
|
| __ cvtsi2sd(xmm2, ecx);
|
| - __ pcmpeqd(xmm2, xmm0);
|
| - __ movmskpd(ecx, xmm2);
|
| - __ test(ecx, Immediate(1));
|
| - __ j(zero, ¬_int32);
|
| + __ ucomisd(xmm0, xmm2);
|
| + __ j(not_zero, ¬_int32);
|
| + __ j(carry, ¬_int32);
|
| }
|
| GenerateHeapResultAllocation(masm, &call_runtime);
|
| __ movdbl(FieldOperand(eax, HeapNumber::kValueOffset), xmm0);
|
| @@ -3214,7 +3213,7 @@ void MathPowStub::Generate(MacroAssembler* masm) {
|
| __ movsd(double_scratch2, double_result); // Load double_exponent with 1.
|
|
|
| // Get absolute value of exponent.
|
| - Label no_neg, while_true, while_false;
|
| + Label no_neg, while_true, no_multiply, while_false;
|
| __ test(scratch, scratch);
|
| __ j(positive, &no_neg, Label::kNear);
|
| __ neg(scratch);
|
| @@ -7206,11 +7205,6 @@ void RecordWriteStub::GenerateFixedRegStubsAheadOfTime() {
|
| }
|
|
|
|
|
| -bool CodeStub::CanUseFPRegisters() {
|
| - return CpuFeatures::IsSupported(SSE2);
|
| -}
|
| -
|
| -
|
| // 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
|
| @@ -7331,17 +7325,6 @@ void RecordWriteStub::CheckNeedsToInformIncrementalMarker(
|
| Mode mode) {
|
| Label object_is_black, need_incremental, need_incremental_pop_object;
|
|
|
| - __ mov(regs_.scratch0(), Immediate(~Page::kPageAlignmentMask));
|
| - __ and_(regs_.scratch0(), regs_.object());
|
| - __ mov(regs_.scratch1(),
|
| - Operand(regs_.scratch0(),
|
| - MemoryChunk::kWriteBarrierCounterOffset));
|
| - __ sub(regs_.scratch1(), Immediate(1));
|
| - __ mov(Operand(regs_.scratch0(),
|
| - MemoryChunk::kWriteBarrierCounterOffset),
|
| - regs_.scratch1());
|
| - __ j(negative, &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(),
|
|
|