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" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 V(CallTrampoline) \ | 49 V(CallTrampoline) \ |
50 V(ConstructStub) \ | 50 V(ConstructStub) \ |
51 V(ConstructTrampoline) \ | 51 V(ConstructTrampoline) \ |
52 V(RegExpExec) \ | 52 V(RegExpExec) \ |
53 V(RegExpReplace) \ | 53 V(RegExpReplace) \ |
54 V(RegExpSplit) \ | 54 V(RegExpSplit) \ |
55 V(CopyFastSmiOrObjectElements) \ | 55 V(CopyFastSmiOrObjectElements) \ |
56 V(TransitionElementsKind) \ | 56 V(TransitionElementsKind) \ |
57 V(AllocateHeapNumber) \ | 57 V(AllocateHeapNumber) \ |
58 V(Builtin) \ | 58 V(Builtin) \ |
| 59 V(ArrayFilter) \ |
59 V(ArrayConstructor) \ | 60 V(ArrayConstructor) \ |
60 V(IteratingArrayBuiltin) \ | 61 V(IteratingArrayBuiltin) \ |
61 V(IteratingArrayBuiltinLoopContinuation) \ | 62 V(IteratingArrayBuiltinLoopContinuation) \ |
62 V(ArrayNoArgumentConstructor) \ | 63 V(ArrayNoArgumentConstructor) \ |
63 V(ArraySingleArgumentConstructor) \ | 64 V(ArraySingleArgumentConstructor) \ |
64 V(ArrayNArgumentsConstructor) \ | 65 V(ArrayNArgumentsConstructor) \ |
65 V(Compare) \ | 66 V(Compare) \ |
66 V(BinaryOp) \ | 67 V(BinaryOp) \ |
67 V(BinaryOpWithAllocationSite) \ | 68 V(BinaryOpWithAllocationSite) \ |
68 V(BinaryOpWithVector) \ | 69 V(BinaryOpWithVector) \ |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 }; | 710 }; |
710 | 711 |
711 class IteratingArrayBuiltinLoopContinuationDescriptor | 712 class IteratingArrayBuiltinLoopContinuationDescriptor |
712 : public BuiltinDescriptor { | 713 : public BuiltinDescriptor { |
713 public: | 714 public: |
714 DEFINE_BUILTIN_PARAMETERS(kCallback, kThisArg, kArray, kObject, kInitialK, | 715 DEFINE_BUILTIN_PARAMETERS(kCallback, kThisArg, kArray, kObject, kInitialK, |
715 kLength) | 716 kLength) |
716 DECLARE_BUILTIN_DESCRIPTOR(IteratingArrayBuiltinLoopContinuationDescriptor) | 717 DECLARE_BUILTIN_DESCRIPTOR(IteratingArrayBuiltinLoopContinuationDescriptor) |
717 }; | 718 }; |
718 | 719 |
| 720 // TODO(mvstanton): It's the same as ForEach and some other array descriptors. |
| 721 // Sharing is probably better. |
| 722 class ArrayFilterDescriptor : public BuiltinDescriptor { |
| 723 public: |
| 724 DEFINE_BUILTIN_PARAMETERS(kCallback, kThisArg) |
| 725 DECLARE_BUILTIN_DESCRIPTOR(ArrayFilterDescriptor) |
| 726 }; |
| 727 |
719 class ArrayConstructorDescriptor : public CallInterfaceDescriptor { | 728 class ArrayConstructorDescriptor : public CallInterfaceDescriptor { |
720 public: | 729 public: |
721 DEFINE_PARAMETERS(kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite) | 730 DEFINE_PARAMETERS(kTarget, kNewTarget, kActualArgumentsCount, kAllocationSite) |
722 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArrayConstructorDescriptor, | 731 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArrayConstructorDescriptor, |
723 CallInterfaceDescriptor) | 732 CallInterfaceDescriptor) |
724 }; | 733 }; |
725 | 734 |
726 class ArrayNoArgumentConstructorDescriptor : public CallInterfaceDescriptor { | 735 class ArrayNoArgumentConstructorDescriptor : public CallInterfaceDescriptor { |
727 public: | 736 public: |
728 DEFINE_PARAMETERS(kFunction, kAllocationSite, kActualArgumentsCount, | 737 DEFINE_PARAMETERS(kFunction, kAllocationSite, kActualArgumentsCount, |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
989 } // namespace v8 | 998 } // namespace v8 |
990 | 999 |
991 | 1000 |
992 #if V8_TARGET_ARCH_ARM64 | 1001 #if V8_TARGET_ARCH_ARM64 |
993 #include "src/arm64/interface-descriptors-arm64.h" | 1002 #include "src/arm64/interface-descriptors-arm64.h" |
994 #elif V8_TARGET_ARCH_ARM | 1003 #elif V8_TARGET_ARCH_ARM |
995 #include "src/arm/interface-descriptors-arm.h" | 1004 #include "src/arm/interface-descriptors-arm.h" |
996 #endif | 1005 #endif |
997 | 1006 |
998 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ | 1007 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ |
OLD | NEW |