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 3914 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3925 assembler->Return(assembler->SmiConstant(Smi::FromInt(0))); | 3925 assembler->Return(assembler->SmiConstant(Smi::FromInt(0))); |
3926 } | 3926 } |
3927 } | 3927 } |
3928 | 3928 |
3929 void StoreInterceptorStub::GenerateAssembly( | 3929 void StoreInterceptorStub::GenerateAssembly( |
3930 CodeStubAssembler* assembler) const { | 3930 CodeStubAssembler* assembler) const { |
3931 typedef compiler::Node Node; | 3931 typedef compiler::Node Node; |
3932 Node* receiver = assembler->Parameter(0); | 3932 Node* receiver = assembler->Parameter(0); |
3933 Node* name = assembler->Parameter(1); | 3933 Node* name = assembler->Parameter(1); |
3934 Node* value = assembler->Parameter(2); | 3934 Node* value = assembler->Parameter(2); |
3935 Node* context = assembler->Parameter(3); | 3935 // Node* slot = assembler->Parameter(3); |
| 3936 // Node* vector = assembler->Parameter(4); |
| 3937 Node* context = assembler->Parameter(5); |
3936 assembler->TailCallRuntime(Runtime::kStorePropertyWithInterceptor, context, | 3938 assembler->TailCallRuntime(Runtime::kStorePropertyWithInterceptor, context, |
3937 receiver, name, value); | 3939 receiver, name, value); |
3938 } | 3940 } |
3939 | 3941 |
3940 void LoadIndexedInterceptorStub::GenerateAssembly( | 3942 void LoadIndexedInterceptorStub::GenerateAssembly( |
3941 CodeStubAssembler* assembler) const { | 3943 CodeStubAssembler* assembler) const { |
3942 typedef compiler::Node Node; | 3944 typedef compiler::Node Node; |
3943 typedef CodeStubAssembler::Label Label; | 3945 typedef CodeStubAssembler::Label Label; |
3944 Node* receiver = assembler->Parameter(0); | 3946 Node* receiver = assembler->Parameter(0); |
3945 Node* key = assembler->Parameter(1); | 3947 Node* key = assembler->Parameter(1); |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4157 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); | 4159 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); |
4158 } | 4160 } |
4159 } | 4161 } |
4160 | 4162 |
4161 | 4163 |
4162 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { | 4164 CallInterfaceDescriptor HandlerStub::GetCallInterfaceDescriptor() const { |
4163 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { | 4165 if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) { |
4164 return LoadWithVectorDescriptor(isolate()); | 4166 return LoadWithVectorDescriptor(isolate()); |
4165 } else { | 4167 } else { |
4166 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); | 4168 DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC); |
4167 return VectorStoreICDescriptor(isolate()); | 4169 return StoreWithVectorDescriptor(isolate()); |
4168 } | 4170 } |
4169 } | 4171 } |
4170 | 4172 |
4171 | 4173 |
4172 void StoreFastElementStub::InitializeDescriptor( | 4174 void StoreFastElementStub::InitializeDescriptor( |
4173 CodeStubDescriptor* descriptor) { | 4175 CodeStubDescriptor* descriptor) { |
4174 descriptor->Initialize( | 4176 descriptor->Initialize( |
4175 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); | 4177 FUNCTION_ADDR(Runtime_KeyedStoreIC_MissFromStubFailure)); |
4176 } | 4178 } |
4177 | 4179 |
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4934 if (type->Is(Type::UntaggedPointer())) { | 4936 if (type->Is(Type::UntaggedPointer())) { |
4935 return Representation::External(); | 4937 return Representation::External(); |
4936 } | 4938 } |
4937 | 4939 |
4938 DCHECK(!type->Is(Type::Untagged())); | 4940 DCHECK(!type->Is(Type::Untagged())); |
4939 return Representation::Tagged(); | 4941 return Representation::Tagged(); |
4940 } | 4942 } |
4941 | 4943 |
4942 } // namespace internal | 4944 } // namespace internal |
4943 } // namespace v8 | 4945 } // namespace v8 |
OLD | NEW |