#include "ABIMacOSX_arm64.h"
#include <optional>
#include <vector>
#include "llvm/ADT/STLExtras.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/Symbol/UnwindPlan.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/RegisterValue.h"
#include "lldb/Utility/Scalar.h"
#include "lldb/Utility/Status.h"
#include "Utility/ARM64_DWARF_Registers.h"
usingnamespacelldb;
usingnamespacelldb_private;
static const char *pluginDesc = …;
size_t ABIMacOSX_arm64::GetRedZoneSize() const { … }
ABISP
ABIMacOSX_arm64::CreateInstance(ProcessSP process_sp, const ArchSpec &arch) { … }
bool ABIMacOSX_arm64::PrepareTrivialCall(
Thread &thread, lldb::addr_t sp, lldb::addr_t func_addr,
lldb::addr_t return_addr, llvm::ArrayRef<lldb::addr_t> args) const { … }
bool ABIMacOSX_arm64::GetArgumentValues(Thread &thread,
ValueList &values) const { … }
Status
ABIMacOSX_arm64::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
lldb::ValueObjectSP &new_value_sp) { … }
bool ABIMacOSX_arm64::CreateFunctionEntryUnwindPlan(UnwindPlan &unwind_plan) { … }
bool ABIMacOSX_arm64::CreateDefaultUnwindPlan(UnwindPlan &unwind_plan) { … }
bool ABIMacOSX_arm64::RegisterIsVolatile(const RegisterInfo *reg_info) { … }
static bool LoadValueFromConsecutiveGPRRegisters(
ExecutionContext &exe_ctx, RegisterContext *reg_ctx,
const CompilerType &value_type,
bool is_return_value,
uint32_t &NGRN,
uint32_t &NSRN,
DataExtractor &data) { … }
ValueObjectSP ABIMacOSX_arm64::GetReturnValueObjectImpl(
Thread &thread, CompilerType &return_compiler_type) const { … }
addr_t ABIMacOSX_arm64::FixCodeAddress(addr_t pc) { … }
addr_t ABIMacOSX_arm64::FixDataAddress(addr_t pc) { … }
void ABIMacOSX_arm64::Initialize() { … }
void ABIMacOSX_arm64::Terminate() { … }