LLDB mainline
ABIWindows_x86_64 Class Reference

#include <ABIWindows_x86_64.h>

Inheritance diagram for ABIWindows_x86_64:
[legend]

Public Member Functions

 ~ABIWindows_x86_64 () override=default
size_t GetRedZoneSize () const override
bool PrepareTrivialCall (lldb_private::Thread &thread, lldb::addr_t sp, lldb::addr_t functionAddress, lldb::addr_t returnAddress, llvm::ArrayRef< lldb::addr_t > args) const override
bool GetArgumentValues (lldb_private::Thread &thread, lldb_private::ValueList &values) const override
lldb_private::Status SetReturnValueObject (lldb::StackFrameSP &frame_sp, lldb::ValueObjectSP &new_value) override
lldb::ValueObjectSP GetReturnValueObjectImpl (lldb_private::Thread &thread, lldb_private::CompilerType &type) const override
lldb::UnwindPlanSP CreateFunctionEntryUnwindPlan () override
lldb::UnwindPlanSP CreateDefaultUnwindPlan () override
bool RegisterIsVolatile (const lldb_private::RegisterInfo *reg_info) override
bool CallFrameAddressIsValid (lldb::addr_t cfa) override
bool CodeAddressIsValid (lldb::addr_t pc) override
bool GetPointerReturnRegister (const char *&name) override
llvm::StringRef GetPluginName () override
Public Member Functions inherited from lldb_private::MCBasedABI
void AugmentRegisterInfo (std::vector< DynamicRegisterInfo::Register > &regs) override
Public Member Functions inherited from lldb_private::ABI
 ~ABI () override
virtual bool PrepareTrivialCall (lldb_private::Thread &thread, lldb::addr_t sp, lldb::addr_t functionAddress, lldb::addr_t returnAddress, llvm::Type &prototype, llvm::ArrayRef< CallArgument > args) const
lldb::ValueObjectSP GetReturnValueObject (Thread &thread, CompilerType &type, bool persistent=true) const
lldb::ValueObjectSP GetReturnValueObject (Thread &thread, llvm::Type &type, bool persistent=true) const
virtual bool GetFallbackRegisterLocation (const RegisterInfo *reg_info, UnwindPlan::Row::AbstractRegisterLocation &unwind_regloc)
virtual lldb::addr_t FixAnyAddress (lldb::addr_t pc)
 Use this method when you do not know, or do not care what kind of address you are fixing.
llvm::MCRegisterInfo & GetMCRegisterInfo ()
virtual uint64_t GetStackFrameSize ()
virtual std::optional< MemoryPermissionsGetMemoryPermissions (lldb_private::RegisterContext &reg_ctx, unsigned protection_key, uint32_t original_permissions)
 Get the effective memory permissions that result when the permissions referred to by a protection key are applied to the original permissions.
virtual lldb::addr_t FixCodeAddress (lldb::addr_t pc)
 Some targets might use bits in a code address to indicate a mode switch.
virtual lldb::addr_t FixDataAddress (lldb::addr_t pc)
Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
virtual ~PluginInterface ()=default
 PluginInterface (const PluginInterface &)=delete
PluginInterfaceoperator= (const PluginInterface &)=delete

Static Public Member Functions

static void Initialize ()
static void Terminate ()
static lldb::ABISP CreateInstance (lldb::ProcessSP process_sp, const lldb_private::ArchSpec &arch)
static llvm::StringRef GetPluginNameStatic ()
Static Public Member Functions inherited from ABIX86
static void Initialize ()
static void Terminate ()
Static Public Member Functions inherited from lldb_private::MCBasedABI
static void MapRegisterName (std::string &reg, llvm::StringRef from_prefix, llvm::StringRef to_prefix)
 If the register name is of the form "<from_prefix>[<number>]" then change the name to "<to_prefix>[<number>]".
Static Public Member Functions inherited from lldb_private::ABI
static lldb::ABISP FindPlugin (lldb::ProcessSP process_sp, const ArchSpec &arch)

Protected Member Functions

void CreateRegisterMapIfNeeded ()
lldb::ValueObjectSP GetReturnValueObjectSimple (lldb_private::Thread &thread, lldb_private::CompilerType &ast_type) const
bool RegisterIsCalleeSaved (const lldb_private::RegisterInfo *reg_info)
uint32_t GetGenericNum (llvm::StringRef reg) override
 Return the generic number of the given register.
Protected Member Functions inherited from ABIX86_64
std::string GetMCName (std::string name) override
 For the given (capitalized) lldb register name, return the name of this register in the MCRegisterInfo struct.
bool Is64Bit () const override
Protected Member Functions inherited from ABIX86
void AugmentRegisterInfo (std::vector< lldb_private::DynamicRegisterInfo::Register > &regs) override
Protected Member Functions inherited from lldb_private::MCBasedABI
virtual std::pair< uint32_t, uint32_t > GetEHAndDWARFNums (llvm::StringRef reg)
 Return eh_frame and dwarf numbers for the given register.
 ABI (lldb::ProcessSP process_sp, std::unique_ptr< llvm::MCRegisterInfo > info_up)
Protected Member Functions inherited from lldb_private::ABI
virtual lldb::ValueObjectSP GetReturnValueObjectImpl (Thread &thread, llvm::Type &ir_type) const
lldb::ProcessSP GetProcessSP () const
 Request to get a Process shared pointer.
 ABI (lldb::ProcessSP process_sp, std::unique_ptr< llvm::MCRegisterInfo > info_up)

Additional Inherited Members

Static Protected Member Functions inherited from lldb_private::ABI
static std::unique_ptr< llvm::MCRegisterInfo > MakeMCRegisterInfo (const ArchSpec &arch)
 Utility function to construct a MCRegisterInfo using the ArchSpec triple.
Protected Attributes inherited from lldb_private::ABI
lldb::ProcessWP m_process_wp
std::unique_ptr< llvm::MCRegisterInfo > m_mc_register_info_up

Detailed Description

Definition at line 14 of file ABIWindows_x86_64.h.

Constructor & Destructor Documentation

◆ ~ABIWindows_x86_64()

ABIWindows_x86_64::~ABIWindows_x86_64 ( )
overridedefault

References sp.

Member Function Documentation

◆ CallFrameAddressIsValid()

bool ABIWindows_x86_64::CallFrameAddressIsValid ( lldb::addr_t cfa)
inlineoverridevirtual

Implements lldb_private::ABI.

Definition at line 48 of file ABIWindows_x86_64.h.

◆ CodeAddressIsValid()

bool ABIWindows_x86_64::CodeAddressIsValid ( lldb::addr_t pc)
inlineoverridevirtual

Implements lldb_private::ABI.

Definition at line 56 of file ABIWindows_x86_64.h.

References pc.

◆ CreateDefaultUnwindPlan()

◆ CreateFunctionEntryUnwindPlan()

◆ CreateInstance()

ABISP ABIWindows_x86_64::CreateInstance ( lldb::ProcessSP process_sp,
const lldb_private::ArchSpec & arch )
static

◆ CreateRegisterMapIfNeeded()

void ABIWindows_x86_64::CreateRegisterMapIfNeeded ( )
protected

◆ GetArgumentValues()

◆ GetGenericNum()

uint32_t ABIWindows_x86_64::GetGenericNum ( llvm::StringRef reg)
overrideprotectedvirtual

◆ GetPluginName()

llvm::StringRef ABIWindows_x86_64::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 80 of file ABIWindows_x86_64.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

llvm::StringRef ABIWindows_x86_64::GetPluginNameStatic ( )
inlinestatic

Definition at line 74 of file ABIWindows_x86_64.h.

Referenced by GetPluginName(), and Initialize().

◆ GetPointerReturnRegister()

bool ABIWindows_x86_64::GetPointerReturnRegister ( const char *& name)
overridevirtual

Reimplemented from lldb_private::ABI.

Definition at line 104 of file ABIWindows_x86_64.cpp.

◆ GetRedZoneSize()

size_t ABIWindows_x86_64::GetRedZoneSize ( ) const
overridevirtual

Implements lldb_private::ABI.

Definition at line 109 of file ABIWindows_x86_64.cpp.

◆ GetReturnValueObjectImpl()

◆ GetReturnValueObjectSimple()

◆ Initialize()

void ABIWindows_x86_64::Initialize ( )
static

◆ PrepareTrivialCall()

◆ RegisterIsCalleeSaved()

bool ABIWindows_x86_64::RegisterIsCalleeSaved ( const lldb_private::RegisterInfo * reg_info)
protected

Definition at line 783 of file ABIWindows_x86_64.cpp.

References lldb_private::RegisterInfo::name.

Referenced by RegisterIsVolatile().

◆ RegisterIsVolatile()

bool ABIWindows_x86_64::RegisterIsVolatile ( const lldb_private::RegisterInfo * reg_info)
overridevirtual

Implements lldb_private::ABI.

Definition at line 779 of file ABIWindows_x86_64.cpp.

References RegisterIsCalleeSaved().

◆ SetReturnValueObject()

◆ Terminate()

void ABIWindows_x86_64::Terminate ( )
static

The documentation for this class was generated from the following files: