OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/code-stubs.h" | 5 #include "src/code-stubs.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 3910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3921 assembler->Return(assembler->SmiConstant(Smi::FromInt(0))); | 3921 assembler->Return(assembler->SmiConstant(Smi::FromInt(0))); |
3922 } | 3922 } |
3923 } | 3923 } |
3924 | 3924 |
3925 void StoreInterceptorStub::GenerateAssembly( | 3925 void StoreInterceptorStub::GenerateAssembly( |
3926 CodeStubAssembler* assembler) const { | 3926 CodeStubAssembler* assembler) const { |
3927 typedef compiler::Node Node; | 3927 typedef compiler::Node Node; |
3928 Node* receiver = assembler->Parameter(0); | 3928 Node* receiver = assembler->Parameter(0); |
3929 Node* name = assembler->Parameter(1); | 3929 Node* name = assembler->Parameter(1); |
3930 Node* value = assembler->Parameter(2); | 3930 Node* value = assembler->Parameter(2); |
3931 Node* context = assembler->Parameter(3); | 3931 // Node* slot = assembler->Parameter(3); |
| 3932 // Node* vector = assembler->Parameter(4); |
| 3933 Node* context = assembler->Parameter(5); |
3932 assembler->TailCallRuntime(Runtime::kStorePropertyWithInterceptor, context, | 3934 assembler->TailCallRuntime(Runtime::kStorePropertyWithInterceptor, context, |
3933 receiver, name, value); | 3935 receiver, name, value); |
3934 } | 3936 } |
3935 | 3937 |
3936 void LoadIndexedInterceptorStub::GenerateAssembly( | 3938 void LoadIndexedInterceptorStub::GenerateAssembly( |
3937 CodeStubAssembler* assembler) const { | 3939 CodeStubAssembler* assembler) const { |
3938 typedef compiler::Node Node; | 3940 typedef compiler::Node Node; |
3939 typedef CodeStubAssembler::Label Label; | 3941 typedef CodeStubAssembler::Label Label; |
3940 Node* receiver = assembler->Parameter(0); | 3942 Node* receiver = assembler->Parameter(0); |
3941 Node* key = assembler->Parameter(1); | 3943 Node* key = assembler->Parameter(1); |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4153 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); | 4155 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); |
4154 } | 4156 } |
4155 } | 4157 } |
4156 | 4158 |
4157 | 4159 |
4158 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { | 4160 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { |
4159 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { | 4161 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { |
4160 return LoadWithVectorDescriptor(isolate()); | 4162 return LoadWithVectorDescriptor(isolate()); |
4161 } else { | 4163 } else { |
4162 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); | 4164 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); |
4163 return VectorStoreICDescriptor(isolate()); | 4165 return StoreWithVectorDescriptor(isolate()); |
4164 } | 4166 } |
4165 } | 4167 } |
4166 | 4168 |
4167 | 4169 |
4168 void StoreFastElementStub::InitializeDescriptor( | 4170 void StoreFastElementStub::InitializeDescriptor( |
4169 CodeStubDescriptor* descriptor) { | 4171 CodeStubDescriptor* descriptor) { |
4170 descriptor->Initialize( | 4172 descriptor->Initialize( |
4171 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); | 4173 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); |
4172 } | 4174 } |
4173 | 4175 |
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4930 if (type->Is(Type::UntaggedPointer())) { | 4932 if (type->Is(Type::UntaggedPointer())) { |
4931 return Representation::External(); | 4933 return Representation::External(); |
4932 } | 4934 } |
4933 | 4935 |
4934 DCHECK(!type->Is(Type::Untagged())); | 4936 DCHECK(!type->Is(Type::Untagged())); |
4935 return Representation::Tagged(); | 4937 return Representation::Tagged(); |
4936 } | 4938 } |
4937 | 4939 |
4938 } // namespace internal | 4940 } // namespace internal |
4939 } // namespace v8 | 4941 } // namespace v8 |
OLD | NEW |