5#ifndef V8_CODEGEN_LINKAGE_LOCATION_H_
6#define V8_CODEGEN_LINKAGE_LOCATION_H_
12#if !defined(__clang__) && defined(_M_ARM64)
14#define NO_INLINE_FOR_ARM64_MSVC __declspec(noinline)
16#define NO_INLINE_FOR_ARM64_MSVC
33 return !(*
this == other);
43 (
IsSubtype(a.machine_type_.representation(),
46 a.machine_type_.representation()));
114 return caller_location;
181#undef NO_INLINE_FOR_ARM64_MSVC
static constexpr T decode(U value)
static constexpr U encode(T value)
static constexpr int kShift
static constexpr int kConstantPoolOffset
static constexpr int kCallerFPOffset
static constexpr int kCallerPCOffset
static LinkageLocation ForRegister(int32_t reg, MachineType type=MachineType::None())
static LinkageLocation ForCallerFrameSlot(int32_t slot, MachineType type)
static LinkageLocation ForAnyRegister(MachineType type=MachineType::None())
bool IsCalleeFrameSlot() const
bool IsAnyRegister() const
int32_t AsCalleeFrameSlot() const
static LinkageLocation ForNullRegister(int32_t reg, MachineType type=MachineType::None())
static constexpr int32_t MAX_STACK_SLOT
MachineType GetType() const
int GetSizeInPointers() const
static LinkageLocation ForCalleeFrameSlot(int32_t slot, MachineType type)
static LinkageLocation ForSavedCallerFramePtr()
static constexpr int32_t ANY_REGISTER
int32_t AsRegister() const
bool IsCallerFrameSlot() const
bool IsNullRegister() const
bool operator!=(const LinkageLocation &other) const
static LinkageLocation ForSavedCallerConstantPool()
static bool IsSameLocation(const LinkageLocation &a, const LinkageLocation &b)
int32_t GetLocation() const
static LinkageLocation ForSavedCallerFunction()
static LinkageLocation ForSavedCallerReturnAddress()
NO_INLINE_FOR_ARM64_MSVC bool IsRegister() const
bool operator==(const LinkageLocation &other) const
int32_t AsCallerFrameSlot() const
LinkageLocation(LocationType type, int32_t location, MachineType machine_type)
static LinkageLocation ConvertToTailCallerLocation(LinkageLocation caller_location, int stack_param_delta)
MachineType machine_type_
static constexpr MachineType Pointer()
constexpr MachineRepresentation representation() const
static constexpr MachineType AnyTagged()
static constexpr MachineType None()
static constexpr int kFunctionOffset
#define V8_EMBEDDED_CONSTANT_POOL_BOOL
#define NO_INLINE_FOR_ARM64_MSVC
V8_EXPORT_PRIVATE constexpr int ElementSizeInPointers(MachineRepresentation rep)
constexpr int kSystemPointerSize
bool IsSubtype(MachineRepresentation rep1, MachineRepresentation rep2)
#define DCHECK_LE(v1, v2)
#define DCHECK(condition)
#define DCHECK_GT(v1, v2)