#include "ABISysV_hexagon.h"
#include "llvm/IR/DerivedTypes.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/Log.h"
#include "lldb/Utility/RegisterValue.h"
#include "lldb/Utility/Status.h"
usingnamespacelldb;
usingnamespacelldb_private;
LLDB_PLUGIN_DEFINE_ADV(ABISysV_hexagon, ABIHexagon)
static const RegisterInfo g_register_infos[] = …;
static const uint32_t k_num_register_infos = …;
const lldb_private::RegisterInfo *
ABISysV_hexagon::GetRegisterInfoArray(uint32_t &count) { … }
size_t ABISysV_hexagon::GetRedZoneSize() const { … }
ABISP
ABISysV_hexagon::CreateInstance(lldb::ProcessSP process_sp, const ArchSpec &arch) { … }
bool ABISysV_hexagon::PrepareTrivialCall(Thread &thread, lldb::addr_t sp,
lldb::addr_t pc, lldb::addr_t ra,
llvm::ArrayRef<addr_t> args) const { … }
#define HEX_ABI_DEBUG …
bool ABISysV_hexagon::PrepareTrivialCall(
Thread &thread, lldb::addr_t sp, lldb::addr_t pc, lldb::addr_t ra,
llvm::Type &prototype, llvm::ArrayRef<ABI::CallArgument> args) const { … }
bool ABISysV_hexagon::GetArgumentValues(Thread &thread,
ValueList &values) const { … }
Status
ABISysV_hexagon::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
lldb::ValueObjectSP &new_value_sp) { … }
ValueObjectSP ABISysV_hexagon::GetReturnValueObjectSimple(
Thread &thread, CompilerType &return_compiler_type) const { … }
ValueObjectSP ABISysV_hexagon::GetReturnValueObjectImpl(
Thread &thread, CompilerType &return_compiler_type) const { … }
bool ABISysV_hexagon::CreateFunctionEntryUnwindPlan(UnwindPlan &unwind_plan) { … }
bool ABISysV_hexagon::CreateDefaultUnwindPlan(UnwindPlan &unwind_plan) { … }
bool ABISysV_hexagon::RegisterIsVolatile(const RegisterInfo *reg_info) { … }
bool ABISysV_hexagon::RegisterIsCalleeSaved(const RegisterInfo *reg_info) { … }
void ABISysV_hexagon::Initialize() { … }
void ABISysV_hexagon::Terminate() { … }
lldb::ValueObjectSP
ABISysV_hexagon::GetReturnValueObjectImpl(lldb_private::Thread &thread,
llvm::Type &retType) const { … }