Index: src/ia32/stub-cache-ia32.cc |
diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc |
index adc8cd59aa9fef87c7aa1dfd6c80ce3632ff5e40..4083a9b60caa451ceebe6d9bd83ef92a9111638c 100644 |
--- a/src/ia32/stub-cache-ia32.cc |
+++ b/src/ia32/stub-cache-ia32.cc |
@@ -527,34 +527,17 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm, |
__ JumpIfNotSmi(value_reg, &heap_number); |
__ SmiUntag(value_reg); |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatureScope use_sse2(masm, SSE2); |
- __ Cvtsi2sd(xmm0, value_reg); |
- } else { |
- __ push(value_reg); |
- __ fild_s(Operand(esp, 0)); |
- __ pop(value_reg); |
- } |
+ __ Cvtsi2sd(xmm0, value_reg); |
__ SmiTag(value_reg); |
__ jmp(&do_store); |
__ bind(&heap_number); |
__ CheckMap(value_reg, masm->isolate()->factory()->heap_number_map(), |
miss_label, DONT_DO_SMI_CHECK); |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatureScope use_sse2(masm, SSE2); |
- __ movsd(xmm0, FieldOperand(value_reg, HeapNumber::kValueOffset)); |
- } else { |
- __ fld_d(FieldOperand(value_reg, HeapNumber::kValueOffset)); |
- } |
+ __ movsd(xmm0, FieldOperand(value_reg, HeapNumber::kValueOffset)); |
__ bind(&do_store); |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatureScope use_sse2(masm, SSE2); |
- __ movsd(FieldOperand(storage_reg, HeapNumber::kValueOffset), xmm0); |
- } else { |
- __ fstp_d(FieldOperand(storage_reg, HeapNumber::kValueOffset)); |
- } |
+ __ movsd(FieldOperand(storage_reg, HeapNumber::kValueOffset), xmm0); |
} |
// Stub never generated for non-global objects that require access |
@@ -721,32 +704,15 @@ void StoreStubCompiler::GenerateStoreField(MacroAssembler* masm, |
Label do_store, heap_number; |
__ JumpIfNotSmi(value_reg, &heap_number); |
__ SmiUntag(value_reg); |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatureScope use_sse2(masm, SSE2); |
- __ Cvtsi2sd(xmm0, value_reg); |
- } else { |
- __ push(value_reg); |
- __ fild_s(Operand(esp, 0)); |
- __ pop(value_reg); |
- } |
+ __ Cvtsi2sd(xmm0, value_reg); |
__ SmiTag(value_reg); |
__ jmp(&do_store); |
__ bind(&heap_number); |
__ CheckMap(value_reg, masm->isolate()->factory()->heap_number_map(), |
miss_label, DONT_DO_SMI_CHECK); |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatureScope use_sse2(masm, SSE2); |
- __ movsd(xmm0, FieldOperand(value_reg, HeapNumber::kValueOffset)); |
- } else { |
- __ fld_d(FieldOperand(value_reg, HeapNumber::kValueOffset)); |
- } |
+ __ movsd(xmm0, FieldOperand(value_reg, HeapNumber::kValueOffset)); |
__ bind(&do_store); |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatureScope use_sse2(masm, SSE2); |
- __ movsd(FieldOperand(scratch1, HeapNumber::kValueOffset), xmm0); |
- } else { |
- __ fstp_d(FieldOperand(scratch1, HeapNumber::kValueOffset)); |
- } |
+ __ movsd(FieldOperand(scratch1, HeapNumber::kValueOffset), xmm0); |
// Return the value (register eax). |
ASSERT(value_reg.is(eax)); |
__ ret(0); |