Index: src/x64/stub-cache-x64.cc |
diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc |
index e64698cf24fa06907180e98947560c8aae854213..05baad3d80ade2b7e6c3ba271e6040ad2ea451c4 100644 |
--- a/src/x64/stub-cache-x64.cc |
+++ b/src/x64/stub-cache-x64.cc |
@@ -2665,6 +2665,35 @@ void CallStubCompiler::CompileHandlerFrontend(Handle<Object> object, |
rax, holder, rbx, rdx, rdi, name, &miss); |
break; |
} |
+ |
+ case FLOAT32x4_CHECK: { |
+ // Check that the object is a float32x4. |
+ __ CmpObjectType(rdx, FLOAT32x4_TYPE, rax); |
+ __ j(not_equal, &miss); |
+ // Check that the maps starting from the prototype haven't changed. |
+ GenerateDirectLoadGlobalFunctionPrototype( |
+ masm(), Context::FLOAT32x4_FUNCTION_INDEX, rax, &miss); |
+ Handle<Object> prototype(object->GetPrototype(isolate()), isolate()); |
+ CheckPrototypes( |
+ IC::CurrentTypeOf(prototype, isolate()), |
+ rax, holder, rbx, rdx, rdi, name, &miss); |
+ break; |
+ } |
+ |
+ case INT32x4_CHECK: { |
+ // Check that the object is a int32x4. |
+ __ CmpObjectType(rdx, INT32x4_TYPE, rax); |
+ __ j(not_equal, &miss); |
+ // Check that the maps starting from the prototype haven't changed. |
+ GenerateDirectLoadGlobalFunctionPrototype( |
+ masm(), Context::INT32x4_FUNCTION_INDEX, rax, &miss); |
+ Handle<Object> prototype(object->GetPrototype(isolate()), isolate()); |
+ CheckPrototypes( |
+ IC::CurrentTypeOf(prototype, isolate()), |
+ rax, holder, rbx, rdx, rdi, name, &miss); |
+ break; |
+ } |
+ |
case BOOLEAN_CHECK: { |
GenerateBooleanCheck(rdx, &miss); |
// Check that the maps starting from the prototype haven't changed. |