diff --git a/src/code-stubs.h b/src/code-stubs.h index 0fdaec2e11..ad424c6209 100644 --- a/src/code-stubs.h +++ b/src/code-stubs.h @@ -47,6 +47,7 @@ namespace internal { V(Compare) \ V(CompareIC) \ V(MathPow) \ + V(TranscendentalCacheSSE2) \ V(RecordWrite) \ V(ConvertToDouble) \ V(WriteInt32ToHeapNumber) \ @@ -56,7 +57,6 @@ namespace internal { V(FastNewContext) \ V(FastCloneShallowArray) \ V(TranscendentalCache) \ - V(TranscendentalCacheSSE2) \ V(GenericUnaryOp) \ V(RevertToNumber) \ V(ToBoolean) \ diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc index f55df14537..c173a3dc5e 100644 --- a/src/ia32/assembler-ia32.cc +++ b/src/ia32/assembler-ia32.cc @@ -2502,7 +2502,7 @@ void Assembler::pshufd(XMMRegister dst, XMMRegister src, int8_t shuffle) { void Assembler::pextrd(const Operand& dst, XMMRegister src, int8_t offset) { - ASSERT(CpuFeatures::IsEnabled(SSE2)); + ASSERT(CpuFeatures::IsEnabled(SSE4_1)); EnsureSpace ensure_space(this); last_pc_ = pc_; EMIT(0x66); diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc index 1f810a00f9..847f06c987 100644 --- a/src/ia32/code-stubs-ia32.cc +++ b/src/ia32/code-stubs-ia32.cc @@ -2790,9 +2790,11 @@ void TranscendentalCacheSSE2Stub::Generate(MacroAssembler* masm) { __ bind(&call_runtime); __ AllocateHeapNumber(eax, edi, no_reg, &skip_cache); - __ push(eax); __ movdbl(FieldOperand(eax, HeapNumber::kValueOffset), xmm1); + __ EnterInternalFrame(); + __ push(eax); __ CallRuntime(RuntimeFunction(), 1); + __ LeaveInternalFrame(); __ movdbl(xmm1, FieldOperand(eax, HeapNumber::kValueOffset)); __ Ret(); }