OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef V8_CALL_INTERFACE_DESCRIPTOR_H_ | 5 #ifndef V8_CALL_INTERFACE_DESCRIPTOR_H_ |
6 #define V8_CALL_INTERFACE_DESCRIPTOR_H_ | 6 #define V8_CALL_INTERFACE_DESCRIPTOR_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
11 #include "src/globals.h" | 11 #include "src/globals.h" |
12 #include "src/macro-assembler.h" | 12 #include "src/macro-assembler.h" |
13 | 13 |
14 namespace v8 { | 14 namespace v8 { |
15 namespace internal { | 15 namespace internal { |
16 | 16 |
17 class PlatformInterfaceDescriptor; | 17 class PlatformInterfaceDescriptor; |
18 | 18 |
19 #define INTERFACE_DESCRIPTOR_LIST(V) \ | 19 #define INTERFACE_DESCRIPTOR_LIST(V) \ |
20 V(Void) \ | 20 V(Void) \ |
21 V(ContextOnly) \ | 21 V(ContextOnly) \ |
22 V(Load) \ | 22 V(Load) \ |
23 V(LoadWithVector) \ | 23 V(LoadWithVector) \ |
| 24 V(LoadICProtoArray) \ |
24 V(LoadGlobal) \ | 25 V(LoadGlobal) \ |
25 V(LoadGlobalWithVector) \ | 26 V(LoadGlobalWithVector) \ |
26 V(Store) \ | 27 V(Store) \ |
27 V(StoreWithVector) \ | 28 V(StoreWithVector) \ |
28 V(StoreNamedTransition) \ | 29 V(StoreNamedTransition) \ |
29 V(StoreTransition) \ | 30 V(StoreTransition) \ |
30 V(VarArgFunction) \ | 31 V(VarArgFunction) \ |
31 V(FastNewClosure) \ | 32 V(FastNewClosure) \ |
32 V(FastNewFunctionContext) \ | 33 V(FastNewFunctionContext) \ |
33 V(FastNewObject) \ | 34 V(FastNewObject) \ |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 | 383 |
383 class LoadWithVectorDescriptor : public LoadDescriptor { | 384 class LoadWithVectorDescriptor : public LoadDescriptor { |
384 public: | 385 public: |
385 DEFINE_PARAMETERS(kReceiver, kName, kSlot, kVector) | 386 DEFINE_PARAMETERS(kReceiver, kName, kSlot, kVector) |
386 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadWithVectorDescriptor, | 387 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadWithVectorDescriptor, |
387 LoadDescriptor) | 388 LoadDescriptor) |
388 | 389 |
389 static const Register VectorRegister(); | 390 static const Register VectorRegister(); |
390 }; | 391 }; |
391 | 392 |
| 393 class LoadICProtoArrayDescriptor : public LoadWithVectorDescriptor { |
| 394 public: |
| 395 DEFINE_PARAMETERS(kReceiver, kName, kSlot, kVector, kHandler) |
| 396 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadICProtoArrayDescriptor, |
| 397 LoadWithVectorDescriptor) |
| 398 |
| 399 static const Register HandlerRegister(); |
| 400 }; |
| 401 |
392 class LoadGlobalWithVectorDescriptor : public LoadGlobalDescriptor { | 402 class LoadGlobalWithVectorDescriptor : public LoadGlobalDescriptor { |
393 public: | 403 public: |
394 DEFINE_PARAMETERS(kSlot, kVector) | 404 DEFINE_PARAMETERS(kSlot, kVector) |
395 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadGlobalWithVectorDescriptor, | 405 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadGlobalWithVectorDescriptor, |
396 LoadGlobalDescriptor) | 406 LoadGlobalDescriptor) |
397 | 407 |
398 static const Register VectorRegister() { | 408 static const Register VectorRegister() { |
399 return LoadWithVectorDescriptor::VectorRegister(); | 409 return LoadWithVectorDescriptor::VectorRegister(); |
400 } | 410 } |
401 }; | 411 }; |
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 } // namespace v8 | 837 } // namespace v8 |
828 | 838 |
829 | 839 |
830 #if V8_TARGET_ARCH_ARM64 | 840 #if V8_TARGET_ARCH_ARM64 |
831 #include "src/arm64/interface-descriptors-arm64.h" | 841 #include "src/arm64/interface-descriptors-arm64.h" |
832 #elif V8_TARGET_ARCH_ARM | 842 #elif V8_TARGET_ARCH_ARM |
833 #include "src/arm/interface-descriptors-arm.h" | 843 #include "src/arm/interface-descriptors-arm.h" |
834 #endif | 844 #endif |
835 | 845 |
836 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ | 846 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ |
OLD | NEW |