Go to the documentation of this file.
42 std::pair<uint32_t, uint32_t>
48 return MCBasedABI::GetEHAndDWARFNums(name);
59 return llvm::StringSwitch<uint32_t>(name)
77 std::vector<lldb_private::DynamicRegisterInfo::Register> ®s,
78 llvm::ArrayRef<llvm::Optional<uint32_t>> full_reg_indices,
79 uint32_t full_reg_size,
const char *partial_reg_format,
81 for (
auto it : llvm::enumerate(full_reg_indices)) {
82 llvm::Optional<uint32_t> full_reg_index = it.value();
83 if (!full_reg_index || regs[*full_reg_index].byte_size != full_reg_size)
88 llvm::formatv(partial_reg_format, it.index()).str()),
106 std::vector<lldb_private::DynamicRegisterInfo::Register> ®s) {
111 std::array<llvm::Optional<uint32_t>, 32> x_regs;
112 std::array<llvm::Optional<uint32_t>, 32> v_regs;
114 for (
auto it : llvm::enumerate(regs)) {
120 unsigned int reg_num;
121 auto get_reg = [&info, ®_num](
const char *prefix) {
124 return (reg_name.consume_front(prefix) &&
125 llvm::to_integer(reg_name, reg_num, 10) && reg_num < 32) ||
126 (alt_name.consume_front(prefix) &&
127 llvm::to_integer(alt_name, reg_num, 10) && reg_num < 32);
131 x_regs[reg_num] = it.index();
132 else if (get_reg(
"v"))
133 v_regs[reg_num] = it.index();
135 else if (get_reg(
"w") || get_reg(
"s") || get_reg(
"d"))
#define LLDB_REGNUM_GENERIC_ARG2
#define LLDB_REGNUM_GENERIC_ARG3
#define LLDB_REGNUM_GENERIC_ARG1
#define LLDB_INVALID_REGNUM
Format
Display format definitions.
#define LLDB_REGNUM_GENERIC_ARG5
std::string GetMCName(std::string reg) override
For the given (capitalized) lldb register name, return the name of this register in the MCRegisterInf...
void SetCString(const char *cstr)
Set the C string value.
void addSupplementaryRegister(std::vector< DynamicRegisterInfo::Register > ®s, DynamicRegisterInfo::Register new_reg_info)
lldb::addr_t FixDataAddress(lldb::addr_t pc) override
#define LLDB_REGNUM_GENERIC_ARG6
#define LLDB_REGNUM_GENERIC_FLAGS
void AugmentRegisterInfo(std::vector< lldb_private::DynamicRegisterInfo::Register > ®s) override
llvm::StringRef GetStringRef() const
Get the string value as a llvm::StringRef.
uint32_t GetGenericNum(llvm::StringRef name) override
Return the generic number of the given register.
@ eEncodingUint
unsigned integer
string(SUBSTRING ${p} 10 -1 pStripped) if($
lldb::ProcessSP GetProcessSP() const
Request to get a Process shared pointer.
#define LLDB_REGNUM_GENERIC_SP
void AugmentRegisterInfo(std::vector< DynamicRegisterInfo::Register > ®s) override
Encoding
Register encoding definitions.
#define LLDB_REGNUM_GENERIC_ARG4
#define LLDB_REGNUM_GENERIC_FP
#define LLDB_REGNUM_GENERIC_PC
#define LLDB_INVALID_INDEX32
lldb::addr_t FixCodeAddress(lldb::addr_t pc) override
Some targets might use bits in a code address to indicate a mode switch.
#define LLDB_PLUGIN_DEFINE(PluginName)
#define LLDB_REGNUM_GENERIC_ARG8
#define LLDB_REGNUM_GENERIC_ARG7
static void addPartialRegisters(std::vector< lldb_private::DynamicRegisterInfo::Register > ®s, llvm::ArrayRef< llvm::Optional< uint32_t >> full_reg_indices, uint32_t full_reg_size, const char *partial_reg_format, uint32_t partial_reg_size, lldb::Encoding encoding, lldb::Format format)
virtual lldb::addr_t FixAddress(lldb::addr_t pc, lldb::addr_t mask)
std::pair< uint32_t, uint32_t > GetEHAndDWARFNums(llvm::StringRef name) override
Return eh_frame and dwarf numbers for the given register.
static void MapRegisterName(std::string ®, 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>[<n...
#define LLDB_REGNUM_GENERIC_RA