Index: src/code-stubs.cc |
diff --git a/src/code-stubs.cc b/src/code-stubs.cc |
index 709b0e58e55042a92f464547c973857f94a70bc9..423cafdf3abada412ce823a08363d3f1c919160b 100644 |
--- a/src/code-stubs.cc |
+++ b/src/code-stubs.cc |
@@ -489,6 +489,22 @@ void AllocateMutableHeapNumberStub::GenerateAssembly( |
assembler->Return(result); |
} |
+#define SIMD128_GEN_ASM(TYPE, Type, type, lane_count, lane_type) \ |
+ void Allocate##Type##Stub::GenerateAssembly( \ |
+ compiler::CodeStubAssembler* assembler) const { \ |
+ compiler::Node* result = assembler->Allocate( \ |
+ Simd128Value::kSize, compiler::CodeStubAssembler::kNone); \ |
+ compiler::Node* map_offset = \ |
+ assembler->IntPtrConstant(HeapObject::kMapOffset - kHeapObjectTag); \ |
+ compiler::Node* map = assembler->IntPtrAdd(result, map_offset); \ |
+ assembler->StoreNoWriteBarrier( \ |
+ MachineRepresentation::kTagged, map, \ |
+ assembler->HeapConstant(isolate()->factory()->type##_map())); \ |
+ assembler->Return(result); \ |
+ } |
+SIMD128_TYPES(SIMD128_GEN_ASM) |
+#undef SIMD128_GEN_ASM |
+ |
void StringLengthStub::GenerateAssembly( |
compiler::CodeStubAssembler* assembler) const { |
compiler::Node* value = assembler->Parameter(0); |
@@ -2551,6 +2567,14 @@ void AllocateMutableHeapNumberStub::InitializeDescriptor( |
descriptor->Initialize(); |
} |
+#define SIMD128_INIT_DESC(TYPE, Type, type, lane_count, lane_type) \ |
+ void Allocate##Type##Stub::InitializeDescriptor( \ |
+ CodeStubDescriptor* descriptor) { \ |
+ descriptor->Initialize( \ |
+ Runtime::FunctionForId(Runtime::kCreate##Type)->entry); \ |
+ } |
+SIMD128_TYPES(SIMD128_INIT_DESC) |
+#undef SIMD128_INIT_DESC |
void AllocateInNewSpaceStub::InitializeDescriptor( |
CodeStubDescriptor* descriptor) { |