#include "src/compiler/linkage.h"
#include "src/codegen/assembler-inl.h"
#include "src/codegen/macro-assembler.h"
#include "src/codegen/optimized-compilation-info.h"
#include "src/compiler/frame.h"
#include "src/compiler/globals.h"
#include "src/compiler/osr.h"
#include "src/compiler/pipeline.h"
#if V8_ENABLE_WEBASSEMBLY
#include "src/compiler/wasm-compiler-definitions.h"
#endif
namespace v8 {
namespace internal {
namespace compiler {
namespace {
constexpr int kFirstCallerSlotOffset = …;
constexpr int kNoCallerSlotOffset = …;
inline LinkageLocation regloc(Register reg, MachineType type) { … }
inline LinkageLocation regloc(DoubleRegister reg, MachineType type) { … }
}
std::ostream& operator<<(std::ostream& os, const CallDescriptor::Kind& k) { … }
std::ostream& operator<<(std::ostream& os, const CallDescriptor& d) { … }
MachineSignature* CallDescriptor::GetMachineSignature(Zone* zone) const { … }
int CallDescriptor::GetStackParameterDelta(
CallDescriptor const* tail_caller) const { … }
int CallDescriptor::GetOffsetToFirstUnusedStackSlot() const { … }
int CallDescriptor::GetOffsetToReturns() const { … }
uint32_t CallDescriptor::GetTaggedParameterSlots() const { … }
bool CallDescriptor::CanTailCall(const CallDescriptor* callee) const { … }
int CallDescriptor::CalculateFixedFrameSize(CodeKind code_kind) const { … }
EncodedCSignature CallDescriptor::ToEncodedCSignature() const { … }
void CallDescriptor::ComputeParamCounts() const { … }
#if V8_ENABLE_WEBASSEMBLY
namespace {
CallDescriptor* ReplaceTypeInCallDescriptorWith(
Zone* zone, const CallDescriptor* call_descriptor, size_t num_replacements,
MachineType from, MachineType to) { … }
}
CallDescriptor* GetI32WasmCallDescriptor(
Zone* zone, const CallDescriptor* call_descriptor) { … }
#endif
CallDescriptor* Linkage::ComputeIncoming(Zone* zone,
OptimizedCompilationInfo* info) { … }
bool Linkage::NeedsFrameStateInput(Runtime::FunctionId function) { … }
CallDescriptor* Linkage::GetRuntimeCallDescriptor(
Zone* zone, Runtime::FunctionId function_id, int js_parameter_count,
Operator::Properties properties, CallDescriptor::Flags flags,
LazyDeoptOnThrow lazy_deopt_on_throw) { … }
CallDescriptor* Linkage::GetCEntryStubCallDescriptor(
Zone* zone, int return_count, int js_parameter_count,
const char* debug_name, Operator::Properties properties,
CallDescriptor::Flags flags, StackArgumentOrder stack_order) { … }
CallDescriptor* Linkage::GetJSCallDescriptor(Zone* zone, bool is_osr,
int js_parameter_count,
CallDescriptor::Flags flags,
Operator::Properties properties) { … }
CallDescriptor* Linkage::GetStubCallDescriptor(
Zone* zone, const CallInterfaceDescriptor& descriptor,
int stack_parameter_count, CallDescriptor::Flags flags,
Operator::Properties properties, StubCallMode stub_mode) { … }
CallDescriptor* Linkage::GetBytecodeDispatchCallDescriptor(
Zone* zone, const CallInterfaceDescriptor& descriptor,
int stack_parameter_count) { … }
LinkageLocation Linkage::GetOsrValueLocation(int index) const { … }
namespace {
inline bool IsTaggedReg(const LinkageLocation& loc, Register reg) { … }
}
bool Linkage::ParameterHasSecondaryLocation(int index) const { … }
LinkageLocation Linkage::GetParameterSecondaryLocation(int index) const { … }
}
}
}