LLVM 20.0.0git
|
A class that can track all registers with locations in a UnwindRow object. More...
#include "llvm/DebugInfo/DWARF/DWARFDebugFrame.h"
Public Member Functions | |
std::optional< UnwindLocation > | getRegisterLocation (uint32_t RegNum) const |
Return the location for the register in RegNum if there is a location. | |
void | setRegisterLocation (uint32_t RegNum, const UnwindLocation &Location) |
Set the location for the register in RegNum to Location. | |
void | removeRegisterLocation (uint32_t RegNum) |
Removes any rule for the register in RegNum. | |
void | dump (raw_ostream &OS, DIDumpOptions DumpOpts) const |
Dump all registers + locations that are currently defined in this object. | |
bool | hasLocations () const |
Returns true if we have any register locations in this object. | |
size_t | size () const |
bool | operator== (const RegisterLocations &RHS) const |
A class that can track all registers with locations in a UnwindRow object.
Register locations use a map where the key is the register number and the the value is a UnwindLocation.
The register maps are put into a class so that all register locations can be copied when parsing the unwind opcodes DW_CFA_remember_state and DW_CFA_restore_state.
Definition at line 182 of file DWARFDebugFrame.h.
void RegisterLocations::dump | ( | raw_ostream & | OS, |
DIDumpOptions | DumpOpts | ||
) | const |
Dump all registers + locations that are currently defined in this object.
OS | the stream to use for output. |
MRI | register information that helps emit register names insteead of raw register numbers. |
IsEH | true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86. |
Definition at line 152 of file DWARFDebugFrame.cpp.
References llvm::First, OS, and printRegister().
Referenced by llvm::dwarf::UnwindRow::dump(), and llvm::dwarf::operator<<().
|
inline |
Return the location for the register in RegNum if there is a location.
RegNum | the register number to find a location for. |
Definition at line 192 of file DWARFDebugFrame.h.
|
inline |
Returns true if we have any register locations in this object.
Definition at line 228 of file DWARFDebugFrame.h.
Referenced by llvm::dwarf::UnwindRow::dump().
|
inline |
Definition at line 232 of file DWARFDebugFrame.h.
References RHS.
|
inline |
Removes any rule for the register in RegNum.
RegNum | the register number to remove the location for. |
Definition at line 212 of file DWARFDebugFrame.h.
|
inline |
Set the location for the register in RegNum to Location.
RegNum | the register number to set the location for. |
Location | the UnwindLocation that describes how to unwind the value. |
Definition at line 204 of file DWARFDebugFrame.h.
|
inline |
Definition at line 230 of file DWARFDebugFrame.h.