Revision: 6033
Author: [email protected]
Date: Wed Dec 15 08:10:13 2010
Log: Mark TranscendentalCacheSSE2Stub as allowing internal stub calls. Mark pextrd instruction as requiring SSE 4.1.
Review URL: http://codereview.chromium.org/5901001
http://code.google.com/p/v8/source/detail?r=6033

Modified:
 /branches/bleeding_edge/src/code-stubs.h
 /branches/bleeding_edge/src/ia32/assembler-ia32.cc
 /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc

=======================================
--- /branches/bleeding_edge/src/code-stubs.h    Tue Dec 14 05:21:29 2010
+++ /branches/bleeding_edge/src/code-stubs.h    Wed Dec 15 08:10:13 2010
@@ -47,6 +47,7 @@
   V(Compare)                             \
   V(CompareIC)                           \
   V(MathPow)                             \
+  V(TranscendentalCacheSSE2)             \
   V(RecordWrite)                         \
   V(ConvertToDouble)                     \
   V(WriteInt32ToHeapNumber)              \
@@ -56,7 +57,6 @@
   V(FastNewContext)                      \
   V(FastCloneShallowArray)               \
   V(TranscendentalCache)                 \
-  V(TranscendentalCacheSSE2)             \
   V(GenericUnaryOp)                      \
   V(RevertToNumber)                      \
   V(ToBoolean)                           \
=======================================
--- /branches/bleeding_edge/src/ia32/assembler-ia32.cc Tue Dec 14 05:21:29 2010 +++ /branches/bleeding_edge/src/ia32/assembler-ia32.cc Wed Dec 15 08:10:13 2010
@@ -2502,7 +2502,7 @@


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);
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Wed Dec 15 05:56:41 2010 +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Wed Dec 15 08:10:13 2010
@@ -2790,9 +2790,11 @@

   __ 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();
 }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to