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. |