Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(798)

Unified Diff: src/stub-cache.cc

Issue 90643003: Experimental implementation: Exposing SIMD instructions into JavaScript Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/simd128.js ('k') | src/types.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/stub-cache.cc
diff --git a/src/stub-cache.cc b/src/stub-cache.cc
index 06edc0d6871d652ba6e5248a53370a0c6883a54a..58eafeda68ba3e6cc2fee4624b964187edd64fb8 100644
--- a/src/stub-cache.cc
+++ b/src/stub-cache.cc
@@ -271,6 +271,10 @@ Handle<Code> StubCache::ComputeCallConstant(int argc,
check = SYMBOL_CHECK;
} else if (object->IsNumber()) {
check = NUMBER_CHECK;
+ } else if (object->IsFloat32x4()) {
+ check = FLOAT32x4_CHECK;
+ } else if (object->IsInt32x4()) {
+ check = INT32x4_CHECK;
} else if (object->IsBoolean()) {
check = BOOLEAN_CHECK;
}
@@ -321,7 +325,8 @@ Handle<Code> StubCache::ComputeCallField(int argc,
// because they may be represented as immediates without a
// map. Instead, we check against the map in the holder.
if (object->IsNumber() || object->IsSymbol() ||
- object->IsBoolean() || object->IsString()) {
+ object->IsBoolean() || object->IsString() ||
+ object->IsFloat32x4() || object->IsInt32x4()) {
object = holder;
}
@@ -359,7 +364,8 @@ Handle<Code> StubCache::ComputeCallInterceptor(int argc,
// because they may be represented as immediates without a
// map. Instead, we check against the map in the holder.
if (object->IsNumber() || object->IsSymbol() ||
- object->IsBoolean() || object->IsString()) {
+ object->IsBoolean() || object->IsString() ||
+ object->IsFloat32x4() || object->IsInt32x4()) {
object = holder;
}
@@ -1140,6 +1146,10 @@ Register LoadStubCompiler::HandlerFrontendHeader(
function_index = Context::SYMBOL_FUNCTION_INDEX;
} else if (type->Is(Type::Number())) {
function_index = Context::NUMBER_FUNCTION_INDEX;
+ } else if (type->Is(Type::Float32x4())) {
+ function_index = Context::FLOAT32x4_FUNCTION_INDEX;
+ } else if (type->Is(Type::Int32x4())) {
+ function_index = Context::INT32x4_FUNCTION_INDEX;
} else if (type->Is(Type::Boolean())) {
// Booleans use the generic oddball map, so an additional check is needed to
// ensure the receiver is really a boolean.
« no previous file with comments | « src/simd128.js ('k') | src/types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698