5#ifndef V8_BUILTINS_BUILTINS_INL_H_
6#define V8_BUILTINS_BUILTINS_INL_H_
20 return Builtin::kRecordWriteIgnoreFP;
22 return Builtin::kRecordWriteSaveFP;
30 return Builtin::kIndirectPointerBarrierIgnoreFP;
32 return Builtin::kIndirectPointerBarrierSaveFP;
40 return Builtin::kEphemeronKeyBarrierIgnoreFP;
42 return Builtin::kEphemeronKeyBarrierSaveFP;
48 int formal_parameter_count) {
49 switch (formal_parameter_count) {
52 return Builtin::kAdaptorWithBuiltinExitFrame0;
54 return Builtin::kAdaptorWithBuiltinExitFrame1;
56 return Builtin::kAdaptorWithBuiltinExitFrame2;
58 return Builtin::kAdaptorWithBuiltinExitFrame3;
60 return Builtin::kAdaptorWithBuiltinExitFrame4;
62 return Builtin::kAdaptorWithBuiltinExitFrame5;
71 return Builtin::kCallFunction_ReceiverIsNullOrUndefined;
73 return Builtin::kCallFunction_ReceiverIsNotNullOrUndefined;
75 return Builtin::kCallFunction_ReceiverIsAny;
84 return Builtin::kCall_ReceiverIsNullOrUndefined;
86 return Builtin::kCall_ReceiverIsNotNullOrUndefined;
88 return Builtin::kCall_ReceiverIsAny;
96 case Builtin::kCallFunction_ReceiverIsNullOrUndefined:
97 case Builtin::kCallFunction_ReceiverIsNotNullOrUndefined:
98 case Builtin::kCallFunction_ReceiverIsAny:
99 case Builtin::kCall_ReceiverIsNullOrUndefined:
100 case Builtin::kCall_ReceiverIsNotNullOrUndefined:
101 case Builtin::kCall_ReceiverIsAny:
112 return Builtin::kNonPrimitiveToPrimitive_Default;
114 return Builtin::kNonPrimitiveToPrimitive_Number;
116 return Builtin::kNonPrimitiveToPrimitive_String;
125 return Builtin::kOrdinaryToPrimitive_Number;
127 return Builtin::kOrdinaryToPrimitive_String;
136 return Builtin::kStringAdd_CheckNone;
138 return Builtin::kStringAddConvertLeft;
140 return Builtin::kStringAddConvertRight;
148 ? Builtin::kLoadGlobalICTrampoline
149 : Builtin::kLoadGlobalICInsideTypeofTrampoline;
156 ? Builtin::kLoadGlobalIC
157 : Builtin::kLoadGlobalICInsideTypeof;
162 bool builtin_exit_frame,
163 bool switch_to_central_stack) {
165 const int rs = result_size;
167 const bool be = builtin_exit_frame;
169 if (switch_to_central_stack) {
173 return Builtin::kWasmCEntry;
177 return Builtin::kCEntry_Return1_ArgvOnStack_NoBuiltinExit;
179 return Builtin::kCEntry_Return1_ArgvOnStack_BuiltinExit;
181 return Builtin::kCEntry_Return1_ArgvInRegister_NoBuiltinExit;
183 return Builtin::kCEntry_Return2_ArgvOnStack_NoBuiltinExit;
185 return Builtin::kCEntry_Return2_ArgvOnStack_BuiltinExit;
187 return Builtin::kCEntry_Return2_ArgvInRegister_NoBuiltinExit;
195 bool switch_to_central_stack) {
213 return Builtin::kInterpreterPushArgsThenCallWithFinalSpread;
215 switch (receiver_mode) {
217 return Builtin::kInterpreterPushUndefinedAndArgsThenCall;
220 return Builtin::kInterpreterPushArgsThenCall;
231 return Builtin::kInterpreterPushArgsThenConstructArrayFunction;
233 return Builtin::kInterpreterPushArgsThenConstructWithFinalSpread;
235 return Builtin::kInterpreterPushArgsThenConstruct;
248 case Builtin::kJSEntry:
249 case Builtin::kJSConstructEntry:
250 case Builtin::kJSRunMicrotasksEntry:
272#define CPP_BUILTIN(Name, Argc) \
273 case Builtin::k##Name: \
#define BUILTIN_LIST_C(V)
#define CPP_BUILTIN(Name, Argc)
static constexpr Builtin InterpreterPushArgsThenCall(ConvertReceiverMode receiver_mode, InterpreterPushArgsMode mode)
static constexpr Builtin RecordWrite(SaveFPRegsMode fp_mode)
static constexpr Builtin InterpreterPushArgsThenConstruct(InterpreterPushArgsMode mode)
static V8_EXPORT_PRIVATE Kind KindOf(Builtin builtin)
static constexpr bool IsJSEntryVariant(Builtin builtin)
static constexpr Builtin OrdinaryToPrimitive(OrdinaryToPrimitiveHint hint)
static int GetFormalParameterCount(Builtin builtin)
static V8_EXPORT_PRIVATE int GetStackParameterCount(Builtin builtin)
static constexpr Builtin RuntimeCEntry(int result_size, bool switch_to_central_stack=false)
static constexpr Builtin EphemeronKeyBarrier(SaveFPRegsMode fp_mode)
static constexpr Builtin CallFunction(ConvertReceiverMode=ConvertReceiverMode::kAny)
static constexpr Builtin AdaptorWithBuiltinExitFrame(int formal_parameter_count)
static constexpr int ToInt(Builtin id)
static constexpr Builtin LoadGlobalICInOptimizedCode(TypeofMode typeof_mode)
static constexpr Builtin IndirectPointerBarrier(SaveFPRegsMode fp_mode)
static V8_EXPORT_PRIVATE bool HasJSLinkage(Builtin builtin)
static constexpr Builtin Call(ConvertReceiverMode=ConvertReceiverMode::kAny)
static constexpr Builtin NonPrimitiveToPrimitive(ToPrimitiveHint hint=ToPrimitiveHint::kDefault)
static Address EntryOf(Builtin builtin, Isolate *isolate)
static constexpr Builtin StringAdd(StringAddFlags flags=STRING_ADD_CHECK_NONE)
static constexpr Builtin InterpreterCEntry(int result_size)
static constexpr Builtin CEntry(int result_size, ArgvMode argv_mode, bool builtin_exit_frame=false, bool switch_to_central_stack=false)
static constexpr Builtin LoadGlobalIC(TypeofMode typeof_mode)
static constexpr bool IsAnyCall(Builtin builtin)
@ STRING_ADD_CONVERT_RIGHT
@ STRING_ADD_CONVERT_LEFT
constexpr uint16_t kDontAdaptArgumentsSentinel
constexpr int JSParameterCount(int param_count_without_receiver)
#define DCHECK_EQ(v1, v2)