5#ifndef V8_CODEGEN_ARM64_INTERFACE_DESCRIPTORS_ARM64_INL_H_
6#define V8_CODEGEN_ARM64_INTERFACE_DESCRIPTORS_ARM64_INL_H_
8#if V8_TARGET_ARCH_ARM64
41template <
typename DerivedDescriptor>
42void StaticCallInterfaceDescriptor<DerivedDescriptor>::
43 VerifyArgumentRegisterCount(CallInterfaceDescriptorData* data,
int argc) {
44 RegList allocatable_regs = data->allocatable_registers();
45 if (argc >= 1)
DCHECK(allocatable_regs.has(x0));
46 if (argc >= 2)
DCHECK(allocatable_regs.has(x1));
47 if (argc >= 3)
DCHECK(allocatable_regs.has(x2));
48 if (argc >= 4)
DCHECK(allocatable_regs.has(x3));
49 if (argc >= 5)
DCHECK(allocatable_regs.has(x4));
50 if (argc >= 6)
DCHECK(allocatable_regs.has(x5));
51 if (argc >= 7)
DCHECK(allocatable_regs.has(x6));
52 if (argc >= 8)
DCHECK(allocatable_regs.has(x7));
63constexpr Register LoadDescriptor::ReceiverRegister() {
return x1; }
70constexpr Register LoadWithVectorDescriptor::VectorRegister() {
return x3; }
73constexpr Register KeyedLoadBaselineDescriptor::ReceiverRegister() {
84constexpr Register KeyedLoadWithVectorDescriptor::VectorRegister() {
89constexpr Register EnumeratedKeyedLoadBaselineDescriptor::EnumIndexRegister() {
104constexpr Register KeyedHasICBaselineDescriptor::ReceiverRegister() {
113constexpr Register KeyedHasICWithVectorDescriptor::VectorRegister() {
119LoadWithReceiverAndVectorDescriptor::LookupStartObjectRegister() {
124constexpr Register StoreDescriptor::ReceiverRegister() {
return x1; }
133constexpr Register StoreWithVectorDescriptor::VectorRegister() {
return x3; }
136constexpr Register DefineKeyedOwnDescriptor::FlagsRegister() {
return x5; }
139constexpr Register StoreTransitionDescriptor::MapRegister() {
return x5; }
147constexpr Register GrowArrayElementsDescriptor::ObjectRegister() {
return x0; }
152constexpr Register BaselineLeaveFrameDescriptor::ParamsSizeRegister() {
164MaglevOptimizeCodeOrTailCallOptimizedCodeSlotDescriptor::FlagsRegister() {
336CallApiCallbackOptimizedDescriptor::ApiFunctionAddressRegister() {
352CallApiCallbackGenericDescriptor::ActualArgumentsCountRegister() {
static constexpr auto registers()
static constexpr Register HolderRegister()
static constexpr Register CallbackRegister()
static constexpr Register WeightRegister()
static constexpr auto registers()
static constexpr Register FunctionTemplateInfoRegister()
static DEFINE_PARAMETERS_VARARGS(kActualArgumentsCount, kTopmostScriptHavingContext, kFunctionTemplateInfo) DEFINE_PARAMETER_TYPES(MachineType constexpr Register TopmostScriptHavingContextRegister()
static constexpr Register FunctionTemplateInfoRegister()
static DEFINE_PARAMETERS_VARARGS(kApiFunctionAddress, kActualArgumentsCount, kFunctionTemplateInfo) DEFINE_PARAMETER_TYPES(MachineType constexpr Register ActualArgumentsCountRegister()
static constexpr auto DefaultReturnDoubleRegisterArray()
static constexpr auto DefaultDoubleRegisterArray()
static constexpr auto DefaultRegisterArray()
static constexpr auto DefaultReturnRegisterArray()
static constexpr auto registers()
static constexpr auto registers()
static constexpr auto registers()
static constexpr auto registers()
static constexpr Register CacheTypeRegister()
static constexpr Register SlotRegister()
static constexpr Register KeyRegister()
static constexpr Register NameRegister()
static constexpr Register SlotRegister()
static constexpr Register SlotRegister()
static constexpr Register NameRegister()
static constexpr Register SlotRegister()
static constexpr Register NameRegister()
static constexpr Register TemporaryRegister()
static constexpr Register FeedbackVectorRegister()
static constexpr auto registers()
static constexpr Register NameRegister()
static constexpr Register SlotRegister()
static constexpr Register ValueRegister()
static constexpr Register ArgumentRegister()
static constexpr auto registers()
static constexpr auto registers()
RegListBase< RegisterT > registers
constexpr EmptyDoubleRegisterArray DoubleRegisterArray()
RegListBase< Register > RegList
constexpr DwVfpRegister no_dreg
constexpr EmptyRegisterArray RegisterArray()
constexpr Register kInterpreterAccumulatorRegister
constexpr DoubleRegister kFPReturnRegister0
constexpr Register kReturnRegister1
constexpr Register kReturnRegister0
constexpr Register kContextRegister
constexpr Register kInterpreterDispatchTableRegister
constexpr Register kReturnRegister2
constexpr int kMaxBuiltinRegisterParams
constexpr Register kInterpreterBytecodeOffsetRegister
constexpr Register kInterpreterBytecodeArrayRegister
#define DCHECK(condition)