chromium/v8/src/codegen/linkage-location.h

// Copyright 2023 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_LINKAGE_LOCATION_H_
#define V8_CODEGEN_LINKAGE_LOCATION_H_

#include "src/base/bit-field.h"
#include "src/codegen/machine-type.h"
#include "src/execution/frame-constants.h"

#if !defined(__clang__) && defined(_M_ARM64)
// _M_ARM64 is an MSVC-specific macro that clang-cl emulates.
#define NO_INLINE_FOR_ARM64_MSVC
#else
#define NO_INLINE_FOR_ARM64_MSVC
#endif

namespace v8 {
namespace internal {
template <typename T>
class Signature;

// Describes the location for a parameter or a return value to a call.
class LinkageLocation {};

LocationSignature;

}  // namespace internal
}  // namespace v8
#undef NO_INLINE_FOR_ARM64_MSVC

#endif  // V8_CODEGEN_LINKAGE_LOCATION_H_