5 #ifndef V8_BUILTINS_BUILTINS_DESCRIPTORS_H_ 6 #define V8_BUILTINS_BUILTINS_DESCRIPTORS_H_ 8 #include "src/builtins/builtins.h" 9 #include "src/compiler/code-assembler.h" 10 #include "src/interface-descriptors.h" 11 #include "src/objects/shared-function-info.h" 17 #define DEFINE_TFJ_INTERFACE_DESCRIPTOR(Name, Argc, ...) \ 18 struct Builtin_##Name##_InterfaceDescriptor { \ 19 enum ParameterIndices { \ 20 kJSTarget = compiler::CodeAssembler::kTargetParameterIndex, \ 23 kJSActualArgumentsCount, \ 27 static_assert((Argc) == static_cast<uint16_t>(kParameterCount - 4), \ 28 "Inconsistent set of arguments"); \ 29 static_assert(kJSTarget == -1, "Unexpected kJSTarget index value"); \ 33 #define DEFINE_TFC_INTERFACE_DESCRIPTOR(Name, InterfaceDescriptor, \ 35 typedef InterfaceDescriptor##Descriptor Builtin_##Name##_InterfaceDescriptor; 37 #define DEFINE_TFS_INTERFACE_DESCRIPTOR(Name, ...) \ 38 typedef Name##Descriptor Builtin_##Name##_InterfaceDescriptor; 41 #define DEFINE_TFH_INTERFACE_DESCRIPTOR(Name, InterfaceDescriptor) \ 42 typedef InterfaceDescriptor##Descriptor Builtin_##Name##_InterfaceDescriptor; 44 BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, DEFINE_TFJ_INTERFACE_DESCRIPTOR,
45 DEFINE_TFC_INTERFACE_DESCRIPTOR, DEFINE_TFS_INTERFACE_DESCRIPTOR,
46 DEFINE_TFH_INTERFACE_DESCRIPTOR, IGNORE_BUILTIN, IGNORE_BUILTIN)
48 #undef DEFINE_TFJ_INTERFACE_DESCRIPTOR 49 #undef DEFINE_TFC_INTERFACE_DESCRIPTOR 50 #undef DEFINE_TFS_INTERFACE_DESCRIPTOR 51 #undef DEFINE_TFH_INTERFACE_DESCRIPTOR 56 #endif // V8_BUILTINS_BUILTINS_DESCRIPTORS_H_