| 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 V(CreateWeakCell) \ | 43 V(CreateWeakCell) \ |
| 44 V(CallFunction) \ | 44 V(CallFunction) \ |
| 45 V(CallIC) \ | 45 V(CallIC) \ |
| 46 V(CallICTrampoline) \ | 46 V(CallICTrampoline) \ |
| 47 V(CallForwardVarargs) \ | 47 V(CallForwardVarargs) \ |
| 48 V(CallConstruct) \ | 48 V(CallConstruct) \ |
| 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(RegExpPrototypeExecSlow) \ | |
| 54 V(RegExpReplace) \ | |
| 55 V(RegExpSplit) \ | |
| 56 V(CopyFastSmiOrObjectElements) \ | |
| 57 V(TransitionElementsKind) \ | 53 V(TransitionElementsKind) \ |
| 58 V(AllocateHeapNumber) \ | 54 V(AllocateHeapNumber) \ |
| 59 V(Builtin) \ | 55 V(Builtin) \ |
| 60 V(ArrayConstructor) \ | 56 V(ArrayConstructor) \ |
| 61 V(IteratingArrayBuiltin) \ | 57 V(IteratingArrayBuiltin) \ |
| 62 V(IteratingArrayBuiltinLoopContinuation) \ | 58 V(IteratingArrayBuiltinLoopContinuation) \ |
| 63 V(ArrayNoArgumentConstructor) \ | 59 V(ArrayNoArgumentConstructor) \ |
| 64 V(ArraySingleArgumentConstructor) \ | 60 V(ArraySingleArgumentConstructor) \ |
| 65 V(ArrayNArgumentsConstructor) \ | 61 V(ArrayNArgumentsConstructor) \ |
| 66 V(Compare) \ | 62 V(Compare) \ |
| 67 V(BinaryOp) \ | 63 V(BinaryOp) \ |
| 68 V(BinaryOpWithAllocationSite) \ | 64 V(BinaryOpWithAllocationSite) \ |
| 69 V(BinaryOpWithVector) \ | 65 V(BinaryOpWithVector) \ |
| 70 V(CountOp) \ | 66 V(CountOp) \ |
| 71 V(StringAdd) \ | 67 V(StringAdd) \ |
| 72 V(StringCharAt) \ | 68 V(StringCharAt) \ |
| 73 V(StringCharCodeAt) \ | 69 V(StringCharCodeAt) \ |
| 74 V(StringCompare) \ | 70 V(StringCompare) \ |
| 75 V(StringIndexOf) \ | |
| 76 V(SubString) \ | 71 V(SubString) \ |
| 77 V(Keyed) \ | |
| 78 V(Named) \ | |
| 79 V(CreateIterResultObject) \ | |
| 80 V(HasProperty) \ | |
| 81 V(ForInFilter) \ | |
| 82 V(ForInNext) \ | |
| 83 V(ForInPrepare) \ | 72 V(ForInPrepare) \ |
| 84 V(GetProperty) \ | 73 V(GetProperty) \ |
| 85 V(CallHandler) \ | |
| 86 V(ArgumentAdaptor) \ | 74 V(ArgumentAdaptor) \ |
| 87 V(ApiCallback) \ | 75 V(ApiCallback) \ |
| 88 V(ApiGetter) \ | 76 V(ApiGetter) \ |
| 89 V(MathPowTagged) \ | 77 V(MathPowTagged) \ |
| 90 V(MathPowInteger) \ | 78 V(MathPowInteger) \ |
| 91 V(GrowArrayElements) \ | 79 V(GrowArrayElements) \ |
| 92 V(NewArgumentsElements) \ | 80 V(NewArgumentsElements) \ |
| 93 V(InterpreterDispatch) \ | 81 V(InterpreterDispatch) \ |
| 94 V(InterpreterPushArgsAndCall) \ | 82 V(InterpreterPushArgsAndCall) \ |
| 95 V(InterpreterPushArgsAndConstruct) \ | 83 V(InterpreterPushArgsAndConstruct) \ |
| 96 V(InterpreterPushArgsAndConstructArray) \ | 84 V(InterpreterPushArgsAndConstructArray) \ |
| 97 V(InterpreterCEntry) \ | 85 V(InterpreterCEntry) \ |
| 98 V(ResumeGenerator) \ | 86 V(ResumeGenerator) \ |
| 99 V(FrameDropperTrampoline) \ | 87 V(FrameDropperTrampoline) \ |
| 100 V(PromiseHandleReject) \ | |
| 101 V(AsyncGeneratorResolve) \ | |
| 102 V(AsyncGeneratorReject) \ | |
| 103 V(AsyncGeneratorResumeNext) \ | |
| 104 V(WasmRuntimeCall) \ | 88 V(WasmRuntimeCall) \ |
| 105 V(ResolveNativePromise) \ | 89 BUILTIN_LIST_TFS(V) |
| 106 V(RejectNativePromise) \ | |
| 107 V(PerformNativePromiseThen) | |
| 108 | 90 |
| 109 class V8_EXPORT_PRIVATE CallInterfaceDescriptorData { | 91 class V8_EXPORT_PRIVATE CallInterfaceDescriptorData { |
| 110 public: | 92 public: |
| 111 CallInterfaceDescriptorData() : register_param_count_(-1), param_count_(-1) {} | 93 CallInterfaceDescriptorData() : register_param_count_(-1), param_count_(-1) {} |
| 112 | 94 |
| 113 // A copy of the passed in registers and param_representations is made | 95 // A copy of the passed in registers and param_representations is made |
| 114 // and owned by the CallInterfaceDescriptorData. | 96 // and owned by the CallInterfaceDescriptorData. |
| 115 | 97 |
| 116 void InitializePlatformSpecific( | 98 void InitializePlatformSpecific( |
| 117 int register_parameter_count, const Register* registers, | 99 int register_parameter_count, const Register* registers, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 | 137 |
| 156 PlatformInterfaceDescriptor* platform_specific_descriptor_; | 138 PlatformInterfaceDescriptor* platform_specific_descriptor_; |
| 157 | 139 |
| 158 DISALLOW_COPY_AND_ASSIGN(CallInterfaceDescriptorData); | 140 DISALLOW_COPY_AND_ASSIGN(CallInterfaceDescriptorData); |
| 159 }; | 141 }; |
| 160 | 142 |
| 161 | 143 |
| 162 class CallDescriptors { | 144 class CallDescriptors { |
| 163 public: | 145 public: |
| 164 enum Key { | 146 enum Key { |
| 165 #define DEF_ENUM(name) name, | 147 #define DEF_ENUM(name, ...) name, |
| 166 INTERFACE_DESCRIPTOR_LIST(DEF_ENUM) | 148 INTERFACE_DESCRIPTOR_LIST(DEF_ENUM) |
| 167 #undef DEF_ENUM | 149 #undef DEF_ENUM |
| 168 NUMBER_OF_DESCRIPTORS | 150 NUMBER_OF_DESCRIPTORS |
| 169 }; | 151 }; |
| 170 }; | 152 }; |
| 171 | 153 |
| 172 class V8_EXPORT_PRIVATE CallInterfaceDescriptor { | 154 class V8_EXPORT_PRIVATE CallInterfaceDescriptor { |
| 173 public: | 155 public: |
| 174 CallInterfaceDescriptor() : data_(NULL) {} | 156 CallInterfaceDescriptor() : data_(NULL) {} |
| 175 virtual ~CallInterfaceDescriptor() {} | 157 virtual ~CallInterfaceDescriptor() {} |
| 176 | 158 |
| 177 CallInterfaceDescriptor(Isolate* isolate, CallDescriptors::Key key) | 159 CallInterfaceDescriptor(Isolate* isolate, CallDescriptors::Key key) |
| 178 : data_(isolate->call_descriptor_data(key)) {} | 160 : data_(isolate->call_descriptor_data(key)) {} |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 509 }; | 491 }; |
| 510 | 492 |
| 511 class TypeConversionDescriptor final : public CallInterfaceDescriptor { | 493 class TypeConversionDescriptor final : public CallInterfaceDescriptor { |
| 512 public: | 494 public: |
| 513 DEFINE_PARAMETERS(kArgument) | 495 DEFINE_PARAMETERS(kArgument) |
| 514 DECLARE_DESCRIPTOR(TypeConversionDescriptor, CallInterfaceDescriptor) | 496 DECLARE_DESCRIPTOR(TypeConversionDescriptor, CallInterfaceDescriptor) |
| 515 | 497 |
| 516 static const Register ArgumentRegister(); | 498 static const Register ArgumentRegister(); |
| 517 }; | 499 }; |
| 518 | 500 |
| 519 class CreateIterResultObjectDescriptor final : public CallInterfaceDescriptor { | |
| 520 public: | |
| 521 DEFINE_PARAMETERS(kValue, kDone) | |
| 522 DECLARE_DEFAULT_DESCRIPTOR(CreateIterResultObjectDescriptor, | |
| 523 CallInterfaceDescriptor, kParameterCount) | |
| 524 }; | |
| 525 | |
| 526 class HasPropertyDescriptor final : public CallInterfaceDescriptor { | |
| 527 public: | |
| 528 DEFINE_PARAMETERS(kKey, kObject) | |
| 529 DECLARE_DEFAULT_DESCRIPTOR(HasPropertyDescriptor, CallInterfaceDescriptor, | |
| 530 kParameterCount) | |
| 531 }; | |
| 532 | |
| 533 class ForInFilterDescriptor final : public CallInterfaceDescriptor { | |
| 534 public: | |
| 535 DEFINE_PARAMETERS(kKey, kObject) | |
| 536 DECLARE_DEFAULT_DESCRIPTOR(ForInFilterDescriptor, CallInterfaceDescriptor, | |
| 537 kParameterCount) | |
| 538 }; | |
| 539 | |
| 540 class ForInNextDescriptor final : public CallInterfaceDescriptor { | |
| 541 public: | |
| 542 DEFINE_PARAMETERS(kObject, kCacheArray, kCacheType, kIndex) | |
| 543 DECLARE_DEFAULT_DESCRIPTOR(ForInNextDescriptor, CallInterfaceDescriptor, | |
| 544 kParameterCount) | |
| 545 }; | |
| 546 | |
| 547 class ForInPrepareDescriptor final : public CallInterfaceDescriptor { | 501 class ForInPrepareDescriptor final : public CallInterfaceDescriptor { |
| 548 public: | 502 public: |
| 549 DEFINE_PARAMETERS(kObject) | 503 DEFINE_PARAMETERS(kObject) |
| 550 DECLARE_DEFAULT_DESCRIPTOR(ForInPrepareDescriptor, CallInterfaceDescriptor, | 504 DECLARE_DEFAULT_DESCRIPTOR(ForInPrepareDescriptor, CallInterfaceDescriptor, |
| 551 kParameterCount) | 505 kParameterCount) |
| 552 }; | 506 }; |
| 553 | 507 |
| 554 class GetPropertyDescriptor final : public CallInterfaceDescriptor { | 508 class GetPropertyDescriptor final : public CallInterfaceDescriptor { |
| 555 public: | 509 public: |
| 556 DEFINE_PARAMETERS(kObject, kKey) | 510 DEFINE_PARAMETERS(kObject, kKey) |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(RegExpExecDescriptor, | 619 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(RegExpExecDescriptor, |
| 666 CallInterfaceDescriptor) | 620 CallInterfaceDescriptor) |
| 667 | 621 |
| 668 static const Register StringRegister(); | 622 static const Register StringRegister(); |
| 669 static const Register LastIndexRegister(); | 623 static const Register LastIndexRegister(); |
| 670 static const Register StringStartRegister(); | 624 static const Register StringStartRegister(); |
| 671 static const Register StringEndRegister(); | 625 static const Register StringEndRegister(); |
| 672 static const Register CodeRegister(); | 626 static const Register CodeRegister(); |
| 673 }; | 627 }; |
| 674 | 628 |
| 675 class RegExpPrototypeExecSlowDescriptor : public CallInterfaceDescriptor { | |
| 676 public: | |
| 677 DEFINE_PARAMETERS(kReceiver, kString) | |
| 678 DECLARE_DEFAULT_DESCRIPTOR(RegExpPrototypeExecSlowDescriptor, | |
| 679 CallInterfaceDescriptor, kParameterCount) | |
| 680 }; | |
| 681 | |
| 682 class RegExpReplaceDescriptor : public CallInterfaceDescriptor { | |
| 683 public: | |
| 684 DEFINE_PARAMETERS(kReceiver, kString, kReplaceValue) | |
| 685 DECLARE_DEFAULT_DESCRIPTOR(RegExpReplaceDescriptor, CallInterfaceDescriptor, | |
| 686 kParameterCount) | |
| 687 }; | |
| 688 | |
| 689 class RegExpSplitDescriptor : public CallInterfaceDescriptor { | |
| 690 public: | |
| 691 DEFINE_PARAMETERS(kReceiver, kString, kLimit) | |
| 692 DECLARE_DEFAULT_DESCRIPTOR(RegExpSplitDescriptor, CallInterfaceDescriptor, | |
| 693 kParameterCount) | |
| 694 }; | |
| 695 | |
| 696 class CopyFastSmiOrObjectElementsDescriptor : public CallInterfaceDescriptor { | |
| 697 public: | |
| 698 DEFINE_PARAMETERS(kObject) | |
| 699 DECLARE_DEFAULT_DESCRIPTOR(CopyFastSmiOrObjectElementsDescriptor, | |
| 700 CallInterfaceDescriptor, kParameterCount) | |
| 701 }; | |
| 702 | |
| 703 class TransitionElementsKindDescriptor : public CallInterfaceDescriptor { | 629 class TransitionElementsKindDescriptor : public CallInterfaceDescriptor { |
| 704 public: | 630 public: |
| 705 DEFINE_PARAMETERS(kObject, kMap) | 631 DEFINE_PARAMETERS(kObject, kMap) |
| 706 DECLARE_DESCRIPTOR(TransitionElementsKindDescriptor, CallInterfaceDescriptor) | 632 DECLARE_DESCRIPTOR(TransitionElementsKindDescriptor, CallInterfaceDescriptor) |
| 707 }; | 633 }; |
| 708 | 634 |
| 709 | 635 |
| 710 class AllocateHeapNumberDescriptor : public CallInterfaceDescriptor { | 636 class AllocateHeapNumberDescriptor : public CallInterfaceDescriptor { |
| 711 public: | 637 public: |
| 712 DEFINE_EMPTY_PARAMETERS() | 638 DEFINE_EMPTY_PARAMETERS() |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 static const Register RightRegister(); | 758 static const Register RightRegister(); |
| 833 }; | 759 }; |
| 834 | 760 |
| 835 class SubStringDescriptor : public CallInterfaceDescriptor { | 761 class SubStringDescriptor : public CallInterfaceDescriptor { |
| 836 public: | 762 public: |
| 837 DEFINE_PARAMETERS(kString, kFrom, kTo) | 763 DEFINE_PARAMETERS(kString, kFrom, kTo) |
| 838 DECLARE_DESCRIPTOR_WITH_STACK_ARGS(SubStringDescriptor, | 764 DECLARE_DESCRIPTOR_WITH_STACK_ARGS(SubStringDescriptor, |
| 839 CallInterfaceDescriptor) | 765 CallInterfaceDescriptor) |
| 840 }; | 766 }; |
| 841 | 767 |
| 842 class StringIndexOfDescriptor final : public CallInterfaceDescriptor { | |
| 843 public: | |
| 844 DEFINE_PARAMETERS(kReceiver, kSearchString, kPosition) | |
| 845 DECLARE_DEFAULT_DESCRIPTOR(StringIndexOfDescriptor, CallInterfaceDescriptor, | |
| 846 kParameterCount) | |
| 847 }; | |
| 848 | |
| 849 // TODO(ishell): not used, remove. | |
| 850 class KeyedDescriptor : public CallInterfaceDescriptor { | |
| 851 public: | |
| 852 DECLARE_DESCRIPTOR(KeyedDescriptor, CallInterfaceDescriptor) | |
| 853 }; | |
| 854 | |
| 855 // TODO(ishell): not used, remove | |
| 856 class NamedDescriptor : public CallInterfaceDescriptor { | |
| 857 public: | |
| 858 DECLARE_DESCRIPTOR(NamedDescriptor, CallInterfaceDescriptor) | |
| 859 }; | |
| 860 | |
| 861 // TODO(ishell): not used, remove. | |
| 862 class CallHandlerDescriptor : public CallInterfaceDescriptor { | |
| 863 public: | |
| 864 DECLARE_DESCRIPTOR(CallHandlerDescriptor, CallInterfaceDescriptor) | |
| 865 }; | |
| 866 | |
| 867 | |
| 868 class ArgumentAdaptorDescriptor : public CallInterfaceDescriptor { | 768 class ArgumentAdaptorDescriptor : public CallInterfaceDescriptor { |
| 869 public: | 769 public: |
| 870 DEFINE_PARAMETERS(kFunction, kNewTarget, kActualArgumentsCount, | 770 DEFINE_PARAMETERS(kFunction, kNewTarget, kActualArgumentsCount, |
| 871 kExpectedArgumentsCount) | 771 kExpectedArgumentsCount) |
| 872 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArgumentAdaptorDescriptor, | 772 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArgumentAdaptorDescriptor, |
| 873 CallInterfaceDescriptor) | 773 CallInterfaceDescriptor) |
| 874 }; | 774 }; |
| 875 | 775 |
| 876 class ApiCallbackDescriptor : public CallInterfaceDescriptor { | 776 class ApiCallbackDescriptor : public CallInterfaceDescriptor { |
| 877 public: | 777 public: |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 975 class ResumeGeneratorDescriptor final : public CallInterfaceDescriptor { | 875 class ResumeGeneratorDescriptor final : public CallInterfaceDescriptor { |
| 976 public: | 876 public: |
| 977 DECLARE_DESCRIPTOR(ResumeGeneratorDescriptor, CallInterfaceDescriptor) | 877 DECLARE_DESCRIPTOR(ResumeGeneratorDescriptor, CallInterfaceDescriptor) |
| 978 }; | 878 }; |
| 979 | 879 |
| 980 class FrameDropperTrampolineDescriptor final : public CallInterfaceDescriptor { | 880 class FrameDropperTrampolineDescriptor final : public CallInterfaceDescriptor { |
| 981 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(FrameDropperTrampolineDescriptor, | 881 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(FrameDropperTrampolineDescriptor, |
| 982 CallInterfaceDescriptor) | 882 CallInterfaceDescriptor) |
| 983 }; | 883 }; |
| 984 | 884 |
| 985 class PromiseHandleRejectDescriptor final : public CallInterfaceDescriptor { | |
| 986 public: | |
| 987 DEFINE_PARAMETERS(kPromise, kOnReject, kException) | |
| 988 DECLARE_DEFAULT_DESCRIPTOR(PromiseHandleRejectDescriptor, | |
| 989 CallInterfaceDescriptor, kParameterCount) | |
| 990 }; | |
| 991 | |
| 992 class AsyncGeneratorResolveDescriptor final : public CallInterfaceDescriptor { | |
| 993 public: | |
| 994 DEFINE_PARAMETERS(kGenerator, kValue, kDone) | |
| 995 DECLARE_DEFAULT_DESCRIPTOR(AsyncGeneratorResolveDescriptor, | |
| 996 CallInterfaceDescriptor, kParameterCount) | |
| 997 }; | |
| 998 | |
| 999 class AsyncGeneratorRejectDescriptor final : public CallInterfaceDescriptor { | |
| 1000 public: | |
| 1001 DEFINE_PARAMETERS(kGenerator, kValue) | |
| 1002 DECLARE_DEFAULT_DESCRIPTOR(AsyncGeneratorRejectDescriptor, | |
| 1003 CallInterfaceDescriptor, kParameterCount) | |
| 1004 }; | |
| 1005 | |
| 1006 class AsyncGeneratorResumeNextDescriptor final | |
| 1007 : public CallInterfaceDescriptor { | |
| 1008 public: | |
| 1009 DEFINE_PARAMETERS(kGenerator) | |
| 1010 DECLARE_DEFAULT_DESCRIPTOR(AsyncGeneratorResumeNextDescriptor, | |
| 1011 CallInterfaceDescriptor, kParameterCount) | |
| 1012 }; | |
| 1013 | |
| 1014 class ResolveNativePromiseDescriptor final : public CallInterfaceDescriptor { | |
| 1015 public: | |
| 1016 DEFINE_PARAMETERS(kPromise, kValue) | |
| 1017 DECLARE_DEFAULT_DESCRIPTOR(ResolveNativePromiseDescriptor, | |
| 1018 CallInterfaceDescriptor, kParameterCount) | |
| 1019 }; | |
| 1020 | |
| 1021 class RejectNativePromiseDescriptor final : public CallInterfaceDescriptor { | |
| 1022 public: | |
| 1023 DEFINE_PARAMETERS(kPromise, kValue, kDebugEvent) | |
| 1024 DECLARE_DEFAULT_DESCRIPTOR(RejectNativePromiseDescriptor, | |
| 1025 CallInterfaceDescriptor, kParameterCount) | |
| 1026 }; | |
| 1027 | |
| 1028 class PerformNativePromiseThenDescriptor final | |
| 1029 : public CallInterfaceDescriptor { | |
| 1030 public: | |
| 1031 DEFINE_PARAMETERS(kPromise, kResolveReaction, kRejectReaction, kResultPromise) | |
| 1032 DECLARE_DEFAULT_DESCRIPTOR(PerformNativePromiseThenDescriptor, | |
| 1033 CallInterfaceDescriptor, kParameterCount) | |
| 1034 }; | |
| 1035 | |
| 1036 class WasmRuntimeCallDescriptor final : public CallInterfaceDescriptor { | 885 class WasmRuntimeCallDescriptor final : public CallInterfaceDescriptor { |
| 1037 public: | 886 public: |
| 1038 DEFINE_EMPTY_PARAMETERS() | 887 DEFINE_EMPTY_PARAMETERS() |
| 1039 DECLARE_DEFAULT_DESCRIPTOR(WasmRuntimeCallDescriptor, CallInterfaceDescriptor, | 888 DECLARE_DEFAULT_DESCRIPTOR(WasmRuntimeCallDescriptor, CallInterfaceDescriptor, |
| 1040 0) | 889 0) |
| 1041 }; | 890 }; |
| 1042 | 891 |
| 892 #define DEFINE_TFS_BUILTIN_DESCRIPTOR(Name, ...) \ |
| 893 class Name##Descriptor : public CallInterfaceDescriptor { \ |
| 894 public: \ |
| 895 DEFINE_PARAMETERS(__VA_ARGS__) \ |
| 896 DECLARE_DEFAULT_DESCRIPTOR(Name##Descriptor, CallInterfaceDescriptor, \ |
| 897 kParameterCount) \ |
| 898 }; |
| 899 BUILTIN_LIST_TFS(DEFINE_TFS_BUILTIN_DESCRIPTOR) |
| 900 #undef DEFINE_TFS_BUILTIN_DESCRIPTOR |
| 901 |
| 1043 #undef DECLARE_DESCRIPTOR_WITH_BASE | 902 #undef DECLARE_DESCRIPTOR_WITH_BASE |
| 1044 #undef DECLARE_DESCRIPTOR | 903 #undef DECLARE_DESCRIPTOR |
| 1045 #undef DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE | 904 #undef DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE |
| 1046 #undef DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG | 905 #undef DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG |
| 1047 #undef DEFINE_PARAMETERS | 906 #undef DEFINE_PARAMETERS |
| 1048 | 907 |
| 1049 // We define the association between CallDescriptors::Key and the specialized | 908 // We define the association between CallDescriptors::Key and the specialized |
| 1050 // descriptor here to reduce boilerplate and mistakes. | 909 // descriptor here to reduce boilerplate and mistakes. |
| 1051 #define DEF_KEY(name) \ | 910 #define DEF_KEY(name, ...) \ |
| 1052 CallDescriptors::Key name##Descriptor::key() { return CallDescriptors::name; } | 911 CallDescriptors::Key name##Descriptor::key() { return CallDescriptors::name; } |
| 1053 INTERFACE_DESCRIPTOR_LIST(DEF_KEY) | 912 INTERFACE_DESCRIPTOR_LIST(DEF_KEY) |
| 1054 #undef DEF_KEY | 913 #undef DEF_KEY |
| 1055 } // namespace internal | 914 } // namespace internal |
| 1056 } // namespace v8 | 915 } // namespace v8 |
| 1057 | 916 |
| 1058 | 917 |
| 1059 #if V8_TARGET_ARCH_ARM64 | 918 #if V8_TARGET_ARCH_ARM64 |
| 1060 #include "src/arm64/interface-descriptors-arm64.h" | 919 #include "src/arm64/interface-descriptors-arm64.h" |
| 1061 #elif V8_TARGET_ARCH_ARM | 920 #elif V8_TARGET_ARCH_ARM |
| 1062 #include "src/arm/interface-descriptors-arm.h" | 921 #include "src/arm/interface-descriptors-arm.h" |
| 1063 #endif | 922 #endif |
| 1064 | 923 |
| 1065 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ | 924 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ |
| OLD | NEW |