Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 9a49e16312942f1963adb8c7cac30a4f97f44569..46d0c1f46faaef5b8cbdf286a258fc05f2182dcb 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -5070,6 +5070,7 @@ void LCodeGen::DoNumberTagD(LNumberTagD* instr) { |
__ ucomisd(input_reg, input_reg); |
} else { |
__ fld(0); |
+ __ fld(0); |
__ FCmp(); |
} |
@@ -5116,16 +5117,12 @@ void LCodeGen::DoNumberTagD(LNumberTagD* instr) { |
__ jmp(deferred->entry()); |
} |
__ bind(deferred->exit()); |
- if (CpuFeatures::IsSupported(SSE2)) { |
+ if (use_sse2) { |
CpuFeatureScope scope(masm(), SSE2); |
XMMRegister input_reg = ToDoubleRegister(instr->value()); |
__ movdbl(FieldOperand(reg, HeapNumber::kValueOffset), input_reg); |
} else { |
- __ fst_d(FieldOperand(reg, HeapNumber::kValueOffset)); |
- } |
- if (!use_sse2) { |
- // clean up the stack |
- __ fstp(0); |
+ __ fstp_d(FieldOperand(reg, HeapNumber::kValueOffset)); |
} |
__ bind(&done); |
} |