chromium/v8/src/codegen/x64/interface-descriptors-x64-inl.h

// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_CODEGEN_X64_INTERFACE_DESCRIPTORS_X64_INL_H_
#define V8_CODEGEN_X64_INTERFACE_DESCRIPTORS_X64_INL_H_

#if V8_TARGET_ARCH_X64

#include "src/codegen/interface-descriptors.h"

namespace v8 {
namespace internal {

constexpr auto CallInterfaceDescriptor::DefaultRegisterArray() {}

constexpr auto CallInterfaceDescriptor::DefaultDoubleRegisterArray() {}

constexpr auto CallInterfaceDescriptor::DefaultReturnRegisterArray() {}

constexpr auto CallInterfaceDescriptor::DefaultReturnDoubleRegisterArray() {}

#if DEBUG
template <typename DerivedDescriptor>
void StaticCallInterfaceDescriptor<DerivedDescriptor>::
    VerifyArgumentRegisterCount(CallInterfaceDescriptorData* data,
                                int nof_expected_args) {}
#endif  // DEBUG

// static
constexpr auto WriteBarrierDescriptor::registers() {}

#ifdef V8_IS_TSAN
// static
constexpr auto TSANStoreDescriptor::registers() {
  return RegisterArray(kCArgRegs[0], kCArgRegs[1], kReturnRegister0);
}

// static
constexpr auto TSANLoadDescriptor::registers() {
  return RegisterArray(kCArgRegs[0], kReturnRegister0);
}
#endif  // V8_IS_TSAN

// static
constexpr Register LoadDescriptor::ReceiverRegister() {}
// static
constexpr Register LoadDescriptor::NameRegister() {}
// static
constexpr Register LoadDescriptor::SlotRegister() {}

// static
constexpr Register LoadWithVectorDescriptor::VectorRegister() {}

// static
constexpr Register KeyedLoadBaselineDescriptor::ReceiverRegister() {}
// static
constexpr Register KeyedLoadBaselineDescriptor::NameRegister() {}
// static
constexpr Register KeyedLoadBaselineDescriptor::SlotRegister() {}

// static
constexpr Register KeyedLoadWithVectorDescriptor::VectorRegister() {}

// static
constexpr Register EnumeratedKeyedLoadBaselineDescriptor::EnumIndexRegister() {}

// static
constexpr Register EnumeratedKeyedLoadBaselineDescriptor::CacheTypeRegister() {}

// static
constexpr Register EnumeratedKeyedLoadBaselineDescriptor::SlotRegister() {}

// static
constexpr Register KeyedHasICBaselineDescriptor::ReceiverRegister() {}
// static
constexpr Register KeyedHasICBaselineDescriptor::NameRegister() {}
// static
constexpr Register KeyedHasICBaselineDescriptor::SlotRegister() {}

// static
constexpr Register KeyedHasICWithVectorDescriptor::VectorRegister() {}

// static
constexpr Register
LoadWithReceiverAndVectorDescriptor::LookupStartObjectRegister() {}

// static
constexpr Register StoreDescriptor::ReceiverRegister() {}
// static
constexpr Register StoreDescriptor::NameRegister() {}
// static
constexpr Register StoreDescriptor::ValueRegister() {}
// static
constexpr Register StoreDescriptor::SlotRegister() {}

// static
constexpr Register StoreWithVectorDescriptor::VectorRegister() {}

// static
constexpr Register DefineKeyedOwnDescriptor::FlagsRegister() {}

// static
constexpr Register StoreTransitionDescriptor::MapRegister() {}

// static
constexpr Register ApiGetterDescriptor::HolderRegister() {}
// static
constexpr Register ApiGetterDescriptor::CallbackRegister() {}

// static
constexpr Register GrowArrayElementsDescriptor::ObjectRegister() {}
// static
constexpr Register GrowArrayElementsDescriptor::KeyRegister() {}

// static
constexpr Register BaselineLeaveFrameDescriptor::ParamsSizeRegister() {}
// static
constexpr Register BaselineLeaveFrameDescriptor::WeightRegister() {}

// static
constexpr Register
MaglevOptimizeCodeOrTailCallOptimizedCodeSlotDescriptor::FlagsRegister() {}
// static
constexpr Register MaglevOptimizeCodeOrTailCallOptimizedCodeSlotDescriptor::
    FeedbackVectorRegister() {}
// static
constexpr Register
MaglevOptimizeCodeOrTailCallOptimizedCodeSlotDescriptor::TemporaryRegister() {}

// static
constexpr Register TypeConversionDescriptor::ArgumentRegister() {}

// static
constexpr auto TypeofDescriptor::registers() {}

// static
constexpr auto CallTrampolineDescriptor::registers() {}
// static
constexpr auto CopyDataPropertiesWithExcludedPropertiesDescriptor::registers() {}

// static
constexpr auto
CopyDataPropertiesWithExcludedPropertiesOnStackDescriptor::registers() {}

// static
constexpr auto CallVarargsDescriptor::registers() {}

// static
constexpr auto CallForwardVarargsDescriptor::registers() {}

// static
constexpr auto CallFunctionTemplateDescriptor::registers() {}

// static
constexpr auto CallFunctionTemplateGenericDescriptor::registers() {}

// static
constexpr auto CallWithSpreadDescriptor::registers() {}

// static
constexpr auto CallWithArrayLikeDescriptor::registers() {}

// static
constexpr auto ConstructVarargsDescriptor::registers() {}

// static
constexpr auto ConstructForwardVarargsDescriptor::registers() {}

// static
constexpr auto ConstructWithSpreadDescriptor::registers() {}

// static
constexpr auto ConstructWithArrayLikeDescriptor::registers() {}

// static
constexpr auto ConstructStubDescriptor::registers() {}

// static
constexpr auto AbortDescriptor::registers() {}

// static
constexpr auto CompareDescriptor::registers() {}

// static
constexpr auto BinaryOpDescriptor::registers() {}

// static
constexpr auto Compare_BaselineDescriptor::registers() {}

// static
constexpr auto BinaryOp_BaselineDescriptor::registers() {}

// static
constexpr auto BinarySmiOp_BaselineDescriptor::registers() {}

// static
constexpr Register
CallApiCallbackOptimizedDescriptor::ApiFunctionAddressRegister() {}
// static
constexpr Register
CallApiCallbackOptimizedDescriptor::ActualArgumentsCountRegister() {}
// static
constexpr Register
CallApiCallbackOptimizedDescriptor::FunctionTemplateInfoRegister() {}
// static
constexpr Register CallApiCallbackOptimizedDescriptor::HolderRegister() {}

// static
constexpr Register
CallApiCallbackGenericDescriptor::ActualArgumentsCountRegister() {}
// static
constexpr Register
CallApiCallbackGenericDescriptor::FunctionTemplateInfoRegister() {}
// static
constexpr Register
CallApiCallbackGenericDescriptor::TopmostScriptHavingContextRegister() {}
// static
constexpr Register CallApiCallbackGenericDescriptor::HolderRegister() {}

// static
constexpr auto InterpreterDispatchDescriptor::registers() {}

// static
constexpr auto InterpreterPushArgsThenCallDescriptor::registers() {}

// static
constexpr auto InterpreterPushArgsThenConstructDescriptor::registers() {}

// static
constexpr auto ConstructForwardAllArgsDescriptor::registers() {}

// static
constexpr auto ResumeGeneratorDescriptor::registers() {}

// static
constexpr auto RunMicrotasksEntryDescriptor::registers() {}

constexpr auto WasmJSToWasmWrapperDescriptor::registers() {}
}  // namespace internal
}  // namespace v8

#endif  // V8_TARGET_ARCH_X64

#endif  // V8_CODEGEN_X64_INTERFACE_DESCRIPTORS_X64_INL_H_