#include "ABIWindows_x86_64.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/TargetParser/Triple.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Value.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/Core/ValueObjectMemory.h"
#include "lldb/Core/ValueObjectRegister.h"
#include "lldb/Symbol/UnwindPlan.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/RegisterValue.h"
#include "lldb/Utility/Status.h"
#include <optional>
usingnamespacelldb;
usingnamespacelldb_private;
LLDB_PLUGIN_DEFINE(…)
enum dwarf_regnums { … };
bool ABIWindows_x86_64::GetPointerReturnRegister(const char *&name) { … }
size_t ABIWindows_x86_64::GetRedZoneSize() const { … }
ABISP
ABIWindows_x86_64::CreateInstance(lldb::ProcessSP process_sp, const ArchSpec &arch) { … }
bool ABIWindows_x86_64::PrepareTrivialCall(Thread &thread, addr_t sp,
addr_t func_addr, addr_t return_addr,
llvm::ArrayRef<addr_t> args) const { … }
static bool ReadIntegerArgument(Scalar &scalar, unsigned int bit_width,
bool is_signed, Thread &thread,
uint32_t *argument_register_ids,
unsigned int ¤t_argument_register,
addr_t ¤t_stack_argument) { … }
bool ABIWindows_x86_64::GetArgumentValues(Thread &thread,
ValueList &values) const { … }
Status ABIWindows_x86_64::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
lldb::ValueObjectSP &new_value_sp) { … }
ValueObjectSP ABIWindows_x86_64::GetReturnValueObjectSimple(
Thread &thread, CompilerType &return_compiler_type) const { … }
static bool FlattenAggregateType(
Thread &thread, ExecutionContext &exe_ctx,
CompilerType &return_compiler_type,
uint32_t data_byte_offset,
std::vector<uint32_t> &aggregate_field_offsets,
std::vector<CompilerType> &aggregate_compiler_types) { … }
ValueObjectSP ABIWindows_x86_64::GetReturnValueObjectImpl(
Thread &thread, CompilerType &return_compiler_type) const { … }
bool ABIWindows_x86_64::CreateFunctionEntryUnwindPlan(UnwindPlan &unwind_plan) { … }
bool ABIWindows_x86_64::CreateDefaultUnwindPlan(UnwindPlan &unwind_plan) { … }
bool ABIWindows_x86_64::RegisterIsVolatile(const RegisterInfo *reg_info) { … }
bool ABIWindows_x86_64::RegisterIsCalleeSaved(const RegisterInfo *reg_info) { … }
uint32_t ABIWindows_x86_64::GetGenericNum(llvm::StringRef reg) { … }
void ABIWindows_x86_64::Initialize() { … }
void ABIWindows_x86_64::Terminate() { … }