diff options
author | Jason Molenda <jmolenda@apple.com> | 2015-08-15 01:21:01 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2015-08-15 01:21:01 +0000 |
commit | a18f7071c228af023ea6a4341192d99b138afed0 (patch) | |
tree | f6f28e19c07c1c272f1891920a45308d8446c9ce | |
parent | 5e4303dc1421f15b3c86cac1383c58d95e567b6b (diff) | |
download | bcm5719-llvm-a18f7071c228af023ea6a4341192d99b138afed0.tar.gz bcm5719-llvm-a18f7071c228af023ea6a4341192d99b138afed0.zip |
A messy bit of cleanup: Move towards more descriptive names
for eh_frame and stabs register numberings. This is not
complete but it's a step in the right direction. It's almost
entirely mechanical.
lldb informally uses "gcc register numbering" to mean eh_frame.
Why? Probably because there's a notorious bug with gcc on i386
darwin where the register numbers in eh_frame were incorrect.
In all other cases, eh_frame register numbering is identical to
dwarf.
lldb informally uses "gdb register numbering" to mean stabs.
There are no official definitions of stabs register numbers
for different architectures, so the implementations of gdb
and gcc are the de facto reference source.
There were some incorrect uses of these register number types
in lldb already. I fixed the ones that I saw as I made
this change.
This commit changes all references to "gcc" and "gdb" register
numbers in lldb to "eh_frame" and "stabs" to make it clear
what is actually being represented.
lldb cannot parse the stabs debug format, and given that no
one is using stabs any more, it is unlikely that it ever will.
A more comprehensive cleanup would remove the stabs register
numbers altogether - it's unnecessary cruft / complication to
all of our register structures.
In ProcessGDBRemote, when we get register definitions from
the gdb-remote stub, we expect to see "gcc:" (qRegisterInfo)
or "gcc_regnum" (qXfer:features:read: packet to get xml payload).
This patch changes ProcessGDBRemote to also accept "ehframe:"
and "ehframe_regnum" from these remotes.
I did not change GDBRemoteCommunicationServerLLGS or debugserver
to send these new packets. I don't know what kind of interoperability
constraints we might be working under. At some point in the future
we should transition to using the more descriptive names.
Throughout lldb we're still using enum names like "gcc_r0" and "gdb_r0",
for eh_frame and stabs register numberings. These should be cleaned
up eventually too.
The sources link cleanly on macosx native with xcode build. I
don't think we'll see problems on other platforms but please let
me know if I broke anyone.
llvm-svn: 245141
41 files changed, 97 insertions, 90 deletions
diff --git a/lldb/include/lldb/Target/RegisterContext.h b/lldb/include/lldb/Target/RegisterContext.h index 9108d457525..65cdc37949b 100644 --- a/lldb/include/lldb/Target/RegisterContext.h +++ b/lldb/include/lldb/Target/RegisterContext.h @@ -93,8 +93,8 @@ public: /// /// There may be multiple ways to enumerate the registers for a given /// architecture. ABI references will specify one to be used with - /// DWARF, the register numberings from stabs (aka "gcc"), there may - /// be a variation used for eh_frame unwind instructions (e.g. on Darwin), + /// DWARF, the register numberings from stabs (aka "gdb"), there may + /// be a variation used for eh_frame (aka "gcc") unwind instructions (e.g. on Darwin), /// and so on. Register 5 by itself is meaningless - RegisterKind /// enumeration tells you what context that number should be translated as. /// diff --git a/lldb/include/lldb/lldb-enumerations.h b/lldb/include/lldb/lldb-enumerations.h index 9bf4c30da44..e7384dd60c2 100644 --- a/lldb/include/lldb/lldb-enumerations.h +++ b/lldb/include/lldb/lldb-enumerations.h @@ -188,11 +188,11 @@ namespace lldb { //---------------------------------------------------------------------- enum RegisterKind { - eRegisterKindGCC = 0, // the register numbers seen in eh_frame - eRegisterKindDWARF, // the register numbers seen DWARF - eRegisterKindGeneric, // insn ptr reg, stack ptr reg, etc not specific to any particular target - eRegisterKindGDB, // the register numbers gdb uses (matches stabs numbers) - eRegisterKindLLDB, // lldb's internal register numbers + eRegisterKindEHFrame = 0, // the register numbers seen in eh_frame + eRegisterKindDWARF, // the register numbers seen DWARF + eRegisterKindGeneric, // insn ptr reg, stack ptr reg, etc not specific to any particular target + eRegisterKindStabs, // the register numbers used in stabs debug format (referred to as "gcc" or "gdb" numbering) + eRegisterKindLLDB, // lldb's internal register numbers kNumRegisterKinds }; diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj index ed7a3e3ec93..90abdd3af3f 100644 --- a/lldb/lldb.xcodeproj/project.pbxproj +++ b/lldb/lldb.xcodeproj/project.pbxproj @@ -2120,7 +2120,7 @@ 26F7305F139D8FC900FD51C7 /* History.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = History.h; path = include/lldb/Core/History.h; sourceTree = "<group>"; }; 26F73061139D8FDB00FD51C7 /* History.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = History.cpp; path = source/Core/History.cpp; sourceTree = "<group>"; }; 26F996A7119B79C300412154 /* ARM_DWARF_Registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARM_DWARF_Registers.h; path = source/Utility/ARM_DWARF_Registers.h; sourceTree = "<group>"; }; - 26F996A8119B79C300412154 /* ARM_GCC_Registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARM_GCC_Registers.h; path = source/Utility/ARM_GCC_Registers.h; sourceTree = "<group>"; }; + 26F996A8119B79C300412154 /* ARM_Stabs_Registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARM_Stabs_Registers.h; path = source/Utility/ARM_Stabs_Registers.h; sourceTree = "<group>"; }; 26FA4315130103F400E71120 /* FileSpec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileSpec.h; path = include/lldb/Host/FileSpec.h; sourceTree = "<group>"; }; 26FA43171301048600E71120 /* FileSpec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSpec.cpp; sourceTree = "<group>"; }; 26FFC19314FC072100087D58 /* AuxVector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AuxVector.cpp; sourceTree = "<group>"; }; @@ -2650,7 +2650,7 @@ AF77E0A81A033D740096C0EA /* RegisterContextPOSIXCore_powerpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterContextPOSIXCore_powerpc.h; sourceTree = "<group>"; }; AF81DEF91828A23F0042CF19 /* SystemRuntime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SystemRuntime.cpp; path = source/Target/SystemRuntime.cpp; sourceTree = "<group>"; }; AF90106315AB7C5700FF120D /* lldb.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; name = lldb.1; path = docs/lldb.1; sourceTree = "<group>"; }; - AF9107E91685709A00DBCD3C /* ARM64_GCC_Registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARM64_GCC_Registers.h; path = source/Utility/ARM64_GCC_Registers.h; sourceTree = "<group>"; }; + AF9107E91685709A00DBCD3C /* ARM64_Stabs_Registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARM64_Stabs_Registers.h; path = source/Utility/ARM64_Stabs_Registers.h; sourceTree = "<group>"; }; AF9107EC168570D200DBCD3C /* RegisterContextDarwin_arm64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegisterContextDarwin_arm64.cpp; path = Utility/RegisterContextDarwin_arm64.cpp; sourceTree = "<group>"; }; AF9107ED168570D200DBCD3C /* RegisterContextDarwin_arm64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegisterContextDarwin_arm64.h; path = Utility/RegisterContextDarwin_arm64.h; sourceTree = "<group>"; }; AF94005711C03F6500085DB9 /* SymbolVendor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SymbolVendor.cpp; path = source/Symbol/SymbolVendor.cpp; sourceTree = "<group>"; }; @@ -3530,13 +3530,13 @@ 257E47161AA56C2000A62F81 /* ModuleCache.h */, 33064C9B1A5C7A490033D415 /* UriParser.h */, 33064C991A5C7A330033D415 /* UriParser.cpp */, - AF9107E91685709A00DBCD3C /* ARM64_GCC_Registers.h */, + AF9107E91685709A00DBCD3C /* ARM64_Stabs_Registers.h */, 26CF992414428766001E4138 /* AnsiTerminal.h */, 26F996A7119B79C300412154 /* ARM_DWARF_Registers.h */, 26ECA04213665FED008D1F18 /* ARM_DWARF_Registers.cpp */, 264A12FF137252C700875C42 /* ARM64_DWARF_Registers.h */, 264A12FE137252C700875C42 /* ARM64_DWARF_Registers.cpp */, - 26F996A8119B79C300412154 /* ARM_GCC_Registers.h */, + 26F996A8119B79C300412154 /* ARM_Stabs_Registers.h */, 264723A511FA076E00DE380C /* CleanUp.h */, 3F81691B1ABA242B001DA9DF /* ConvertEnum.h */, 3F8169171ABA2419001DA9DF /* ConvertEnum.cpp */, diff --git a/lldb/source/Core/EmulateInstruction.cpp b/lldb/source/Core/EmulateInstruction.cpp index 8349f54de4c..affd96721ec 100644 --- a/lldb/source/Core/EmulateInstruction.cpp +++ b/lldb/source/Core/EmulateInstruction.cpp @@ -635,17 +635,17 @@ EmulateInstruction::GetBestRegisterKindAndNumber (const RegisterInfo *reg_info, return true; } - reg_num = reg_info->kinds[eRegisterKindGCC]; + reg_num = reg_info->kinds[eRegisterKindEHFrame]; if (reg_num != LLDB_INVALID_REGNUM) { - reg_kind = eRegisterKindGCC; + reg_kind = eRegisterKindEHFrame; return true; } - reg_num = reg_info->kinds[eRegisterKindGDB]; + reg_num = reg_info->kinds[eRegisterKindStabs]; if (reg_num != LLDB_INVALID_REGNUM) { - reg_kind = eRegisterKindGDB; + reg_kind = eRegisterKindStabs; return true; } return false; diff --git a/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp b/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp index 7402be6cc16..807e41cf87d 100644 --- a/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp +++ b/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp @@ -28,7 +28,7 @@ #include "llvm/ADT/Triple.h" #include "Utility/ARM_DWARF_Registers.h" -#include "Utility/ARM_GCC_Registers.h" +#include "Utility/ARM_Stabs_Registers.h" #include "Plugins/Process/Utility/ARMDefines.h" #include <vector> @@ -38,7 +38,7 @@ using namespace lldb_private; static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ========== ======= == === ============= ============ ======================= =================== =========================== ======================= ====================== ========== =============== { "r0", "arg1", 4, 0, eEncodingUint , eFormatHex, { gcc_r0, dwarf_r0, LLDB_REGNUM_GENERIC_ARG1, gdb_arm_r0, LLDB_INVALID_REGNUM }, NULL, NULL}, { "r1", "arg2", 4, 0, eEncodingUint , eFormatHex, { gcc_r1, dwarf_r1, LLDB_REGNUM_GENERIC_ARG2, gdb_arm_r1, LLDB_INVALID_REGNUM }, NULL, NULL}, diff --git a/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp b/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp index 9b61522e8ad..407fa9cc2b5 100644 --- a/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp +++ b/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp @@ -42,7 +42,7 @@ static const char *pluginShort = "abi.macosx-arm64"; static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE // ========== ======= == === ============= =================== =================== ====================== =========================== ======================= ====================== { "x0", NULL, 8, 0, eEncodingUint , eFormatHex , { LLDB_INVALID_REGNUM, arm64_dwarf::x0, LLDB_REGNUM_GENERIC_ARG1, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM }, NULL, NULL }, { "x1", NULL, 8, 0, eEncodingUint , eFormatHex , { LLDB_INVALID_REGNUM, arm64_dwarf::x1, LLDB_REGNUM_GENERIC_ARG2, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM }, NULL, NULL }, diff --git a/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp b/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp index cbdea20bd33..655d3c7dcdc 100644 --- a/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp +++ b/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp @@ -146,7 +146,7 @@ enum static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ====== ======= == === ============= ============ ===================== ===================== ============================ ==================== ====================== ========== =============== { "eax", NULL, 4, 0, eEncodingUint , eFormatHex , { gcc_eax , dwarf_eax , LLDB_INVALID_REGNUM , gdb_eax , LLDB_INVALID_REGNUM }, NULL, NULL}, { "ebx" , NULL, 4, 0, eEncodingUint , eFormatHex , { gcc_ebx , dwarf_ebx , LLDB_INVALID_REGNUM , gdb_ebx , LLDB_INVALID_REGNUM }, NULL, NULL}, diff --git a/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp b/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp index 27f17a290ee..d3536493dfc 100644 --- a/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp +++ b/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp @@ -28,7 +28,7 @@ #include "llvm/ADT/Triple.h" #include "Utility/ARM_DWARF_Registers.h" -#include "Utility/ARM_GCC_Registers.h" +#include "Utility/ARM_Stabs_Registers.h" #include "Plugins/Process/Utility/ARMDefines.h" #include <vector> @@ -38,7 +38,7 @@ using namespace lldb_private; static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ========== ======= == === ============= ============ ======================= =================== =========================== ======================= ====================== ========== =============== { "r0", "arg1", 4, 0, eEncodingUint , eFormatHex, { gcc_r0, dwarf_r0, LLDB_REGNUM_GENERIC_ARG1, gdb_arm_r0, LLDB_INVALID_REGNUM }, NULL, NULL}, { "r1", "arg2", 4, 0, eEncodingUint , eFormatHex, { gcc_r1, dwarf_r1, LLDB_REGNUM_GENERIC_ARG2, gdb_arm_r1, LLDB_INVALID_REGNUM }, NULL, NULL}, diff --git a/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp b/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp index b419a908b59..e9b46983bf3 100644 --- a/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp +++ b/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp @@ -37,7 +37,7 @@ using namespace lldb_private; static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE // ========== ======= == === ============= =================== =================== ====================== =========================== ======================= ====================== { "x0", NULL, 8, 0, eEncodingUint , eFormatHex , { LLDB_INVALID_REGNUM, arm64_dwarf::x0, LLDB_REGNUM_GENERIC_ARG1, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM }, NULL, NULL }, { "x1", NULL, 8, 0, eEncodingUint , eFormatHex , { LLDB_INVALID_REGNUM, arm64_dwarf::x1, LLDB_REGNUM_GENERIC_ARG2, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM }, NULL, NULL }, diff --git a/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp b/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp index ad0cf3b3aeb..bce4f3c5e5d 100644 --- a/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp +++ b/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp @@ -173,7 +173,7 @@ enum gdb_regnums static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ====== ======= == === ============= ============ ===================== ===================== ============================ ==================== ====================== ========== =============== { "eax", nullptr, 4, 0, eEncodingUint , eFormatHex , { gcc_dwarf_eax , gcc_dwarf_eax , LLDB_INVALID_REGNUM , gdb_eax , LLDB_INVALID_REGNUM }, nullptr, nullptr}, { "ebx" , nullptr, 4, 0, eEncodingUint , eFormatHex , { gcc_dwarf_ebx , gcc_dwarf_ebx , LLDB_INVALID_REGNUM , gdb_ebx , LLDB_INVALID_REGNUM }, nullptr, nullptr}, diff --git a/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp b/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp index 4307dd9faed..d401ef3a3a5 100644 --- a/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp +++ b/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp @@ -121,7 +121,7 @@ enum gdb_regnums static const RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ======== ====== == === ============= =================== ============ ===================== ==================== ================= ====================== ========== =============== { "r0" , "zero", 4, 0, eEncodingUint, eFormatHex, { gcc_dwarf_r0, gcc_dwarf_r0, LLDB_INVALID_REGNUM, gdb_r0, LLDB_INVALID_REGNUM }, NULL, NULL}, { "r1" , "AT", 4, 0, eEncodingUint, eFormatHex, { gcc_dwarf_r1, gcc_dwarf_r1, LLDB_INVALID_REGNUM, gdb_r1, LLDB_INVALID_REGNUM }, NULL, NULL}, diff --git a/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp b/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp index 362b49f71d9..3d5b9d4f2cd 100644 --- a/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp +++ b/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp @@ -121,7 +121,7 @@ enum gdb_regnums static const RegisterInfo g_register_infos_mips64[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ======== ====== == === ============= =================== ============ ===================== ==================== ================= ====================== ========== =============== { "r0" , "zero", 8, 0, eEncodingUint, eFormatHex, { gcc_dwarf_r0, gcc_dwarf_r0, LLDB_INVALID_REGNUM, gdb_r0, LLDB_INVALID_REGNUM }, NULL, NULL}, { "r1" , "AT", 8, 0, eEncodingUint, eFormatHex, { gcc_dwarf_r1, gcc_dwarf_r1, LLDB_INVALID_REGNUM, gdb_r1, LLDB_INVALID_REGNUM }, NULL, NULL}, diff --git a/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp b/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp index 0df5096a9ab..25853f8d452 100644 --- a/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp +++ b/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp @@ -175,7 +175,7 @@ enum gdb_regnums static RegisterInfo g_register_infos[] = { - // NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS + // NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ======== ======= == === ============= =================== ======================= ===================== =========================== ===================== ====================== ========== =============== { "rax" , NULL, 8, 0, eEncodingUint , eFormatHex , { gcc_dwarf_rax , gcc_dwarf_rax , LLDB_INVALID_REGNUM , gdb_rax , LLDB_INVALID_REGNUM }, NULL, NULL}, { "rbx" , NULL, 8, 0, eEncodingUint , eFormatHex , { gcc_dwarf_rbx , gcc_dwarf_rbx , LLDB_INVALID_REGNUM , gdb_rbx , LLDB_INVALID_REGNUM }, NULL, NULL}, diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index 660c31e6683..0544d74ae8e 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -2505,7 +2505,7 @@ ObjectFileMachO::ParseSymtab () // the module. if (text_section_sp.get() && eh_frame_section_sp.get() && m_type != eTypeDebugInfo) { - DWARFCallFrameInfo eh_frame(*this, eh_frame_section_sp, eRegisterKindGCC, true); + DWARFCallFrameInfo eh_frame(*this, eh_frame_section_sp, eRegisterKindEHFrame, true); DWARFCallFrameInfo::FunctionAddressAndSizeVector functions; eh_frame.GetFunctionAddressAndSizeVector (functions); addr_t text_base_addr = text_section_sp->GetFileAddress(); diff --git a/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp b/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp index 4eff442c1a0..cb9ec7b3498 100644 --- a/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp +++ b/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp @@ -325,8 +325,8 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict, con // Fill in the register numbers reg_info.kinds[lldb::eRegisterKindLLDB] = i; - reg_info.kinds[lldb::eRegisterKindGDB] = i; - reg_info_dict->GetValueForKeyAsInteger("gcc", reg_info.kinds[lldb::eRegisterKindGCC], LLDB_INVALID_REGNUM); + reg_info.kinds[lldb::eRegisterKindStabs] = i; + reg_info_dict->GetValueForKeyAsInteger("gcc", reg_info.kinds[lldb::eRegisterKindEHFrame], LLDB_INVALID_REGNUM); reg_info_dict->GetValueForKeyAsInteger("dwarf", reg_info.kinds[lldb::eRegisterKindDWARF], LLDB_INVALID_REGNUM); std::string generic_str; if (reg_info_dict->GetValueForKeyAsString("generic", generic_str)) @@ -703,12 +703,12 @@ DynamicRegisterInfo::Dump () const m_regs[i].byte_offset, m_regs[i].encoding, FormatManager::GetFormatAsCString (m_regs[i].format)); - if (m_regs[i].kinds[eRegisterKindGDB] != LLDB_INVALID_REGNUM) - s.Printf(", gdb = %3u", m_regs[i].kinds[eRegisterKindGDB]); + if (m_regs[i].kinds[eRegisterKindStabs] != LLDB_INVALID_REGNUM) + s.Printf(", gdb = %3u", m_regs[i].kinds[eRegisterKindStabs]); if (m_regs[i].kinds[eRegisterKindDWARF] != LLDB_INVALID_REGNUM) s.Printf(", dwarf = %3u", m_regs[i].kinds[eRegisterKindDWARF]); - if (m_regs[i].kinds[eRegisterKindGCC] != LLDB_INVALID_REGNUM) - s.Printf(", gcc = %3u", m_regs[i].kinds[eRegisterKindGCC]); + if (m_regs[i].kinds[eRegisterKindEHFrame] != LLDB_INVALID_REGNUM) + s.Printf(", gcc = %3u", m_regs[i].kinds[eRegisterKindEHFrame]); if (m_regs[i].kinds[eRegisterKindGeneric] != LLDB_INVALID_REGNUM) s.Printf(", generic = %3u", m_regs[i].kinds[eRegisterKindGeneric]); if (m_regs[i].alt_name) diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp index 4138a6aaa2a..49842167449 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp @@ -34,7 +34,7 @@ #endif // Project includes -#include "ARM_GCC_Registers.h" +#include "ARM_Stabs_Registers.h" #include "ARM_DWARF_Registers.h" #include "llvm/ADT/STLExtras.h" @@ -202,7 +202,7 @@ RegisterContextDarwin_arm::~RegisterContextDarwin_arm() static RegisterInfo g_register_infos[] = { // General purpose registers -// NAME ALT SZ OFFSET ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS +// NAME ALT SZ OFFSET ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ====== ======= == ============= ============= ============ =============== =============== ========================= ===================== ============= ========== =============== { "r0", NULL, 4, GPR_OFFSET(0), eEncodingUint, eFormatHex, { gcc_r0, dwarf_r0, LLDB_INVALID_REGNUM, gdb_arm_r0, gpr_r0 }, NULL, NULL}, { "r1", NULL, 4, GPR_OFFSET(1), eEncodingUint, eFormatHex, { gcc_r1, dwarf_r1, LLDB_INVALID_REGNUM, gdb_arm_r1, gpr_r1 }, NULL, NULL}, @@ -940,7 +940,7 @@ RegisterContextDarwin_arm::ConvertRegisterKindToRegisterNumber (lldb::RegisterKi break; } } - else if (kind == eRegisterKindGCC) + else if (kind == eRegisterKindEHFrame) { switch (reg) { diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp index e08a87369e4..db0ad92b80d 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp @@ -36,7 +36,7 @@ #endif // Project includes -#include "ARM64_GCC_Registers.h" +#include "ARM64_Stabs_Registers.h" #include "ARM64_DWARF_Registers.h" using namespace lldb; @@ -770,7 +770,7 @@ RegisterContextDarwin_arm64::ConvertRegisterKindToRegisterNumber (RegisterKind k break; } } - else if (kind == eRegisterKindGCC) + else if (kind == eRegisterKindEHFrame) { switch (reg) { diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp index 08144bf7ec2..e6834c7131c 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp @@ -231,7 +231,7 @@ RegisterContextDarwin_i386::~RegisterContextDarwin_i386() static RegisterInfo g_register_infos[] = { -// Macro auto defines most stuff GCC DWARF GENERIC GDB LLDB VALUE REGS INVALIDATE REGS +// Macro auto defines most stuff eh_frame DWARF GENERIC stabs LLDB VALUE REGS INVALIDATE REGS // =============================== ======================= =================== ========================= ================== ================= ========== =============== { DEFINE_GPR(eax , NULL) , { gcc_eax , dwarf_eax , LLDB_INVALID_REGNUM , gdb_eax , gpr_eax }, NULL, NULL}, { DEFINE_GPR(ebx , NULL) , { gcc_ebx , dwarf_ebx , LLDB_INVALID_REGNUM , gdb_ebx , gpr_ebx }, NULL, NULL}, @@ -859,7 +859,7 @@ RegisterContextDarwin_i386::ConvertRegisterKindToRegisterNumber (lldb::RegisterK break; } } - else if (kind == eRegisterKindGCC || kind == eRegisterKindDWARF) + else if (kind == eRegisterKindEHFrame || kind == eRegisterKindDWARF) { switch (reg) { @@ -893,7 +893,7 @@ RegisterContextDarwin_i386::ConvertRegisterKindToRegisterNumber (lldb::RegisterK break; } } - else if (kind == eRegisterKindGDB) + else if (kind == eRegisterKindStabs) { switch (reg) { diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp index 54124d187d5..01316183303 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp @@ -255,7 +255,7 @@ RegisterContextDarwin_x86_64::~RegisterContextDarwin_x86_64() // General purpose registers for 64 bit static RegisterInfo g_register_infos[] = { -// Macro auto defines most stuff GCC DWARF GENERIC GDB LLDB VALUE REGS INVALIDATE REGS +// Macro auto defines most stuff EH_FRAME DWARF GENERIC STABS LLDB VALUE REGS INVALIDATE REGS // =============================== ====================== =================== ========================== ==================== =================== ========== =============== { DEFINE_GPR (rax , NULL) , { gcc_dwarf_gpr_rax , gcc_dwarf_gpr_rax , LLDB_INVALID_REGNUM , gdb_gpr_rax , gpr_rax }, NULL, NULL}, { DEFINE_GPR (rbx , NULL) , { gcc_dwarf_gpr_rbx , gcc_dwarf_gpr_rbx , LLDB_INVALID_REGNUM , gdb_gpr_rbx , gpr_rbx }, NULL, NULL}, @@ -919,7 +919,7 @@ RegisterContextDarwin_x86_64::ConvertRegisterKindToRegisterNumber (lldb::Registe break; } } - else if (kind == eRegisterKindGCC || kind == eRegisterKindDWARF) + else if (kind == eRegisterKindEHFrame || kind == eRegisterKindDWARF) { switch (reg) { @@ -968,7 +968,7 @@ RegisterContextDarwin_x86_64::ConvertRegisterKindToRegisterNumber (lldb::Registe break; } } - else if (kind == eRegisterKindGDB) + else if (kind == eRegisterKindStabs) { switch (reg) { diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp index 329b0a7968a..5c898fc22cb 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp @@ -51,10 +51,10 @@ RegisterContext (thread, concrete_frame_idx) m_pc_reg_info.format = eFormatPointer; m_pc_reg_info.invalidate_regs = NULL; m_pc_reg_info.value_regs = NULL; - m_pc_reg_info.kinds[eRegisterKindGCC] = LLDB_INVALID_REGNUM; + m_pc_reg_info.kinds[eRegisterKindEHFrame] = LLDB_INVALID_REGNUM; m_pc_reg_info.kinds[eRegisterKindDWARF] = LLDB_INVALID_REGNUM; m_pc_reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_PC; - m_pc_reg_info.kinds[eRegisterKindGDB] = LLDB_INVALID_REGNUM; + m_pc_reg_info.kinds[eRegisterKindStabs] = LLDB_INVALID_REGNUM; m_pc_reg_info.kinds[eRegisterKindLLDB] = LLDB_INVALID_REGNUM; } diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp index 3c370103629..182d7cd949f 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp @@ -52,10 +52,10 @@ RegisterContext (thread, concrete_frame_idx), m_pc_reg_info.format = eFormatPointer; m_pc_reg_info.invalidate_regs = NULL; m_pc_reg_info.value_regs = NULL; - m_pc_reg_info.kinds[eRegisterKindGCC] = LLDB_INVALID_REGNUM; + m_pc_reg_info.kinds[eRegisterKindEHFrame] = LLDB_INVALID_REGNUM; m_pc_reg_info.kinds[eRegisterKindDWARF] = LLDB_INVALID_REGNUM; m_pc_reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_PC; - m_pc_reg_info.kinds[eRegisterKindGDB] = LLDB_INVALID_REGNUM; + m_pc_reg_info.kinds[eRegisterKindStabs] = LLDB_INVALID_REGNUM; m_pc_reg_info.kinds[eRegisterKindLLDB] = LLDB_INVALID_REGNUM; } diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp index 948437f5128..ef799f55b06 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp @@ -10,7 +10,7 @@ #include <vector> #include <stddef.h> -// For GDB, GCC and DWARF Register numbers +// For stabs, eh_frame and DWARF Register numbers #include "RegisterContextLinux_mips.h" // Internal codes for mips registers diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp index a762930e8eb..6d526d245a0 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp @@ -12,7 +12,7 @@ #include <vector> #include <stddef.h> -// For GDB, GCC and DWARF Register numbers +// For eh_frame, stabs and DWARF Register numbers #include "RegisterContextLinux_mips64.h" // Internal codes for all mips64 registers diff --git a/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h b/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h index 96ce2a0acc5..6375e4afe24 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h +++ b/lldb/source/Plugins/Process/Utility/RegisterContext_mips64.h @@ -10,7 +10,7 @@ #ifndef liblldb_RegisterContext_mips64_H_ #define liblldb_RegisterContext_mips64_H_ -// GCC and DWARF Register numbers (eRegisterKindGCC & eRegisterKindDWARF) +// eh_frame and DWARF Register numbers (eRegisterKindEHFrame & eRegisterKindDWARF) enum { // GP Registers diff --git a/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h b/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h index 7438b88971b..634d85f3348 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h +++ b/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h @@ -10,7 +10,7 @@ #ifndef liblldb_RegisterContext_powerpc_H_ #define liblldb_RegisterContext_powerpc_H_ -// GCC and DWARF Register numbers (eRegisterKindGCC & eRegisterKindDWARF) +// eh_frame and DWARF Register numbers (eRegisterKindEHFrame & eRegisterKindDWARF) enum { gcc_dwarf_r0_powerpc = 0, @@ -120,7 +120,7 @@ enum gcc_dwarf_v31_powerpc, }; -// GDB Register numbers (eRegisterKindGDB) +// Stabs Register numbers (eRegisterKindStabs) enum { gdb_r0_powerpc = 0, diff --git a/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h b/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h index 6b3f6fb43e3..0d81a5ae697 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h +++ b/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h @@ -14,7 +14,7 @@ // i386 gcc, dwarf, gdb enums //--------------------------------------------------------------------------- -// Register numbers seen in eh_frame (eRegisterKindGCC) +// Register numbers seen in eh_frame (eRegisterKindEHFrame) // // From Jason Molenda: "gcc registers" is the register numbering used in the eh_frame // CFI. The only registers that are described in eh_frame CFI are those that are @@ -130,9 +130,8 @@ enum // then differentiate based on size of the register. }; -// Register numbers GDB uses (eRegisterKindGDB) +// Register numbers Stabs uses (eRegisterKindStabs) // -// From Jason Molenda: The "gdb numbers" are what you would see in the stabs debug format. enum { gdb_eax_i386, @@ -198,7 +197,7 @@ enum // AMD x86_64, AMD64, Intel EM64T, or Intel 64 gcc, dwarf, gdb enums //--------------------------------------------------------------------------- -// GCC and DWARF Register numbers (eRegisterKindGCC & eRegisterKindDWARF) +// EHFrame and DWARF Register numbers (eRegisterKindEHFrame & eRegisterKindDWARF) // This is the spec I used (as opposed to x86-64-abi-0.99.pdf): // http://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi.pdf enum @@ -299,7 +298,7 @@ enum // gcc_dwarf_k7_x86_64, }; -// GDB Register numbers (eRegisterKindGDB) +// Stabs Register numbers (eRegisterKindStabs) enum { // GP Registers diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h index 3d144d66941..425eda5f4b2 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h @@ -15,7 +15,7 @@ #include "lldb/lldb-defines.h" #include "lldb/lldb-enumerations.h" -#include "Utility/ARM_GCC_Registers.h" +#include "Utility/ARM_Stabs_Registers.h" #include "Utility/ARM_DWARF_Registers.h" using namespace lldb; @@ -173,7 +173,7 @@ enum static RegisterInfo g_register_infos_arm[] = { // General purpose registers -// NAME ALT SZ OFFSET ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS +// NAME ALT SZ OFFSET ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ====== ======= == ============= ============= ============ =============== =============== ========================= ===================== ============= ========== =============== { "r0", NULL, 4, GPR_OFFSET(0), eEncodingUint, eFormatHex, { gcc_r0, dwarf_r0, LLDB_REGNUM_GENERIC_ARG1, gdb_arm_r0, gpr_r0 }, NULL, NULL}, { "r1", NULL, 4, GPR_OFFSET(1), eEncodingUint, eFormatHex, { gcc_r1, dwarf_r1, LLDB_REGNUM_GENERIC_ARG2, gdb_arm_r1, gpr_r1 }, NULL, NULL}, diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h index 0255a3bc7d6..b8dd8691afa 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h @@ -15,7 +15,7 @@ #include "lldb/lldb-defines.h" #include "lldb/lldb-enumerations.h" -#include "Utility/ARM64_GCC_Registers.h" +#include "Utility/ARM64_Stabs_Registers.h" #include "Utility/ARM64_DWARF_Registers.h" #ifndef GPR_OFFSET @@ -196,7 +196,7 @@ enum static lldb_private::RegisterInfo g_register_infos_arm64[] = { // General purpose registers -// NAME ALT SZ OFFSET ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB NATIVE VALUE REGS INVALIDATE REGS +// NAME ALT SZ OFFSET ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB NATIVE VALUE REGS INVALIDATE REGS // ====== ======= == ============= ============= ============ =============== =============== ========================= ===================== ============= ========== =============== { "x0", NULL, 8, GPR_OFFSET(0), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x0, arm64_dwarf::x0, LLDB_REGNUM_GENERIC_ARG1, arm64_gcc::x0, gpr_x0 }, NULL, NULL}, { "x1", NULL, 8, GPR_OFFSET(1), lldb::eEncodingUint, lldb::eFormatHex, { arm64_gcc::x1, arm64_dwarf::x1, LLDB_REGNUM_GENERIC_ARG2, arm64_gcc::x1, gpr_x1 }, NULL, NULL}, diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h index 69825362134..ece3638c44b 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h @@ -52,7 +52,7 @@ { #name, NULL, FPR_SIZE(reg), FPR_OFFSET(reg), eEncodingUint, \ eFormatHex, { kind1, kind2, kind3, kind4, lldb_##name##_i386 }, NULL, NULL } -// RegisterKind: GCC, DWARF, Generic, GDB, LLDB +// RegisterKind: EHFrame, DWARF, Generic, Stabs, LLDB #define DEFINE_FP_ST(reg, i) \ { #reg#i, NULL, FP_SIZE, LLVM_EXTENSION FPR_OFFSET(stmm[i]), \ diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h index 0956b2ca9ec..89aea756727 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h @@ -33,7 +33,7 @@ { #reg, alt, sizeof(((FPR_mips*)NULL)->member), FPR_OFFSET(member), eEncodingUint, \ eFormatHex, { kind1, kind2, kind3, kind4, fpr_##reg##_mips }, NULL, NULL } -// RegisterKind: GCC, DWARF, Generic, GDB, LLDB +// RegisterKind: EH_Frame, DWARF, Generic, Stabs, LLDB static RegisterInfo g_register_infos_mips[] = diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h index e03aea4e3f2..6a4e96b31ed 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h @@ -20,7 +20,7 @@ #define FPR_OFFSET(regname) \ LLVM_EXTENSION offsetof(FPR_mips, regname) \ -// RegisterKind: GCC, DWARF, Generic, GDB, LLDB +// RegisterKind: EHFrame, DWARF, Generic, Stabs, LLDB // Note that the size and offset will be updated by platform-specific classes. #define DEFINE_GPR(reg, alt, kind1, kind2, kind3, kind4) \ @@ -34,7 +34,7 @@ static RegisterInfo g_register_infos_mips64[] = { - // General purpose registers. GCC, DWARF, Generic, GDB + // General purpose registers. EH_Frame, DWARF, Generic, Stabs DEFINE_GPR(zero, "r0", gcc_dwarf_zero_mips64, gcc_dwarf_zero_mips64, LLDB_INVALID_REGNUM, gdb_zero_mips64), DEFINE_GPR(r1, NULL, gcc_dwarf_r1_mips64, gcc_dwarf_r1_mips64, LLDB_INVALID_REGNUM, gdb_r1_mips64), DEFINE_GPR(r2, NULL, gcc_dwarf_r2_mips64, gcc_dwarf_r2_mips64, LLDB_INVALID_REGNUM, gdb_r2_mips64), diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h index fe145e99588..ea83093181f 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h @@ -32,7 +32,7 @@ { #reg, NULL, 16, VMX_OFFSET(reg), eEncodingVector, \ eFormatVectorOfUInt32, { gcc_dwarf_##reg##_powerpc, gcc_dwarf_##reg##_powerpc, lldb_kind, gdb_##reg##_powerpc, vmx_##reg##_powerpc }, NULL, NULL } - // General purpose registers. GCC, DWARF, Generic, GDB + // General purpose registers. EH_Frame, DWARF, Generic, Stabs #define POWERPC_REGS \ DEFINE_GPR(r0, NULL, LLDB_INVALID_REGNUM), \ DEFINE_GPR(r1, "sp", LLDB_REGNUM_GENERIC_SP), \ diff --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h index 5da74ff8348..25f4df8022d 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h +++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h @@ -44,7 +44,7 @@ #define DR_SIZE sizeof(((DBG*)NULL)->dr[0]) -// RegisterKind: GCC, DWARF, Generic, GDB, LLDB +// RegisterKind: EHFrame, DWARF, Generic, Stabs, LLDB // Note that the size and offset will be updated by platform-specific classes. #define DEFINE_GPR(reg, alt, kind1, kind2, kind3, kind4) \ @@ -100,7 +100,7 @@ static RegisterInfo g_register_infos_x86_64[] = { - // General purpose registers. GCC, DWARF, Generic, GDB + // General purpose registers. EH_Frame, DWARF, Generic, Stabs DEFINE_GPR(rax, NULL, gcc_dwarf_rax_x86_64, gcc_dwarf_rax_x86_64, LLDB_INVALID_REGNUM, gdb_rax_x86_64), DEFINE_GPR(rbx, NULL, gcc_dwarf_rbx_x86_64, gcc_dwarf_rbx_x86_64, LLDB_INVALID_REGNUM, gdb_rbx_x86_64), DEFINE_GPR(rcx, "arg4", gcc_dwarf_rcx_x86_64, gcc_dwarf_rcx_x86_64, LLDB_REGNUM_GENERIC_ARG4, gdb_rcx_x86_64), @@ -179,7 +179,7 @@ g_register_infos_x86_64[] = DEFINE_GPR_PSEUDO_8L(r14l, r14), DEFINE_GPR_PSEUDO_8L(r15l, r15), - // i387 Floating point registers. GCC, DWARF, Generic, GDB + // i387 Floating point registers. EH_frame, DWARF, Generic, Stabs DEFINE_FPR(fctrl, fctrl, gcc_dwarf_fctrl_x86_64, gcc_dwarf_fctrl_x86_64, LLDB_INVALID_REGNUM, gdb_fctrl_x86_64), DEFINE_FPR(fstat, fstat, gcc_dwarf_fstat_x86_64, gcc_dwarf_fstat_x86_64, LLDB_INVALID_REGNUM, gdb_fstat_x86_64), DEFINE_FPR(ftag, ftag, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gdb_ftag_x86_64), diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp index 1ce9ba64c19..8f1ad869701 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp @@ -1566,8 +1566,8 @@ GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo (StringExtractorGDBRemote response.PutChar (';'); } - if (reg_info->kinds[RegisterKind::eRegisterKindGCC] != LLDB_INVALID_REGNUM) - response.Printf ("gcc:%" PRIu32 ";", reg_info->kinds[RegisterKind::eRegisterKindGCC]); + if (reg_info->kinds[RegisterKind::eRegisterKindEHFrame] != LLDB_INVALID_REGNUM) + response.Printf ("gcc:%" PRIu32 ";", reg_info->kinds[RegisterKind::eRegisterKindEHFrame]); if (reg_info->kinds[RegisterKind::eRegisterKindDWARF] != LLDB_INVALID_REGNUM) response.Printf ("dwarf:%" PRIu32 ";", reg_info->kinds[RegisterKind::eRegisterKindDWARF]); diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp index e3d5bea0128..e4058ecf849 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp @@ -25,7 +25,7 @@ #include "ProcessGDBRemote.h" #include "ProcessGDBRemoteLog.h" #include "ThreadGDBRemote.h" -#include "Utility/ARM_GCC_Registers.h" +#include "Utility/ARM_Stabs_Registers.h" #include "Utility/ARM_DWARF_Registers.h" using namespace lldb; @@ -938,7 +938,7 @@ GDBRemoteDynamicRegisterInfo::HardcodeARMRegisters(bool from_scratch) }; static RegisterInfo g_register_infos[] = { -// NAME ALT SZ OFF ENCODING FORMAT COMPILER DWARF GENERIC GDB LLDB VALUE REGS INVALIDATE REGS +// NAME ALT SZ OFF ENCODING FORMAT EH_FRAME DWARF GENERIC STABS LLDB VALUE REGS INVALIDATE REGS // ====== ====== === === ============= ============ =================== =================== ====================== === ==== ========== =============== { "r0", "arg1", 4, 0, eEncodingUint, eFormatHex, { gcc_r0, dwarf_r0, LLDB_REGNUM_GENERIC_ARG1,0, 0 }, NULL, NULL}, { "r1", "arg2", 4, 0, eEncodingUint, eFormatHex, { gcc_r1, dwarf_r1, LLDB_REGNUM_GENERIC_ARG2,1, 1 }, NULL, NULL}, diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index d4d653d3533..16a966dba42 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -636,9 +636,9 @@ ProcessGDBRemote::BuildDynamicRegisterInfo (bool force) { set_name.SetCString(value.c_str()); } - else if (name.compare("gcc") == 0) + else if (name.compare("gcc") == 0 || name.compare("ehframe") == 0) { - reg_info.kinds[eRegisterKindGCC] = StringConvert::ToUInt32(value.c_str(), LLDB_INVALID_REGNUM, 0); + reg_info.kinds[eRegisterKindEHFrame] = StringConvert::ToUInt32(value.c_str(), LLDB_INVALID_REGNUM, 0); } else if (name.compare("dwarf") == 0) { @@ -4285,7 +4285,7 @@ ParseRegisters (XMLNode feature_node, GdbServerTargetInfo &target_info, GDBRemot const uint32_t regnum = StringConvert::ToUInt32(value.data(), LLDB_INVALID_REGNUM, 0); if (regnum != LLDB_INVALID_REGNUM) { - reg_info.kinds[eRegisterKindGDB] = regnum; + reg_info.kinds[eRegisterKindStabs] = regnum; reg_info.kinds[eRegisterKindLLDB] = regnum; prev_reg_num = regnum; } @@ -4333,9 +4333,9 @@ ParseRegisters (XMLNode feature_node, GdbServerTargetInfo &target_info, GDBRemot if (pos != target_info.reg_set_map.end()) set_name = pos->second.name; } - else if (name == "gcc_regnum") + else if (name == "gcc_regnum" || name == "ehframe_regnum") { - reg_info.kinds[eRegisterKindGCC] = StringConvert::ToUInt32(value.data(), LLDB_INVALID_REGNUM, 0); + reg_info.kinds[eRegisterKindEHFrame] = StringConvert::ToUInt32(value.data(), LLDB_INVALID_REGNUM, 0); } else if (name == "dwarf_regnum") { diff --git a/lldb/source/Symbol/CompactUnwindInfo.cpp b/lldb/source/Symbol/CompactUnwindInfo.cpp index 624591c24dc..672f700eb97 100644 --- a/lldb/source/Symbol/CompactUnwindInfo.cpp +++ b/lldb/source/Symbol/CompactUnwindInfo.cpp @@ -722,7 +722,7 @@ CompactUnwindInfo::CreateUnwindPlan_x86_64 (Target &target, FunctionInfo &functi unwind_plan.SetSourceName ("compact unwind info"); unwind_plan.SetSourcedFromCompiler (eLazyBoolYes); unwind_plan.SetUnwindPlanValidAtAllInstructions (eLazyBoolNo); - unwind_plan.SetRegisterKind (eRegisterKindGCC); + unwind_plan.SetRegisterKind (eRegisterKindEHFrame); unwind_plan.SetLSDAAddress (function_info.lsda_address); unwind_plan.SetPersonalityFunctionPtr (function_info.personality_ptr_address); @@ -1006,7 +1006,7 @@ CompactUnwindInfo::CreateUnwindPlan_i386 (Target &target, FunctionInfo &function unwind_plan.SetSourceName ("compact unwind info"); unwind_plan.SetSourcedFromCompiler (eLazyBoolYes); unwind_plan.SetUnwindPlanValidAtAllInstructions (eLazyBoolNo); - unwind_plan.SetRegisterKind (eRegisterKindGCC); + unwind_plan.SetRegisterKind (eRegisterKindEHFrame); unwind_plan.SetLSDAAddress (function_info.lsda_address); unwind_plan.SetPersonalityFunctionPtr (function_info.personality_ptr_address); diff --git a/lldb/source/Symbol/UnwindTable.cpp b/lldb/source/Symbol/UnwindTable.cpp index 90b33a69a78..e21b0f8696d 100644 --- a/lldb/source/Symbol/UnwindTable.cpp +++ b/lldb/source/Symbol/UnwindTable.cpp @@ -56,7 +56,7 @@ UnwindTable::Initialize () SectionSP sect = sl->FindSectionByType (eSectionTypeEHFrame, true); if (sect.get()) { - m_eh_frame = new DWARFCallFrameInfo(m_object_file, sect, eRegisterKindGCC, true); + m_eh_frame = new DWARFCallFrameInfo(m_object_file, sect, eRegisterKindEHFrame, true); } sect = sl->FindSectionByType (eSectionTypeCompactUnwind, true); if (sect.get()) diff --git a/lldb/source/Target/ABI.cpp b/lldb/source/Target/ABI.cpp index 291117d5a92..63b22c97166 100644 --- a/lldb/source/Target/ABI.cpp +++ b/lldb/source/Target/ABI.cpp @@ -84,7 +84,7 @@ ABI::GetRegisterInfoByName (const ConstString &name, RegisterInfo &info) bool ABI::GetRegisterInfoByKind (RegisterKind reg_kind, uint32_t reg_num, RegisterInfo &info) { - if (reg_kind < eRegisterKindGCC || reg_kind >= kNumRegisterKinds) + if (reg_kind < eRegisterKindEHFrame || reg_kind >= kNumRegisterKinds) return false; uint32_t count = 0; diff --git a/lldb/source/Utility/ARM64_GCC_Registers.h b/lldb/source/Utility/ARM64_Stabs_Registers.h index 2166b3bf591..ba270d68862 100644 --- a/lldb/source/Utility/ARM64_GCC_Registers.h +++ b/lldb/source/Utility/ARM64_Stabs_Registers.h @@ -7,8 +7,12 @@ // //===----------------------------------------------------------------------===// -#ifndef utility_ARM64_gdb_Registers_h_ -#define utility_ARM64_gdb_Registers_h_ +#ifndef utility_ARM64_Stabs_Registers_h_ +#define utility_ARM64_Stabs_Registers_h_ + +// The register numbers used in the stabs debug format (sometimes called "gdb" numbers in lldb sources). +// lldb can't read stabs and I don't think anyone serious is still generating it; +// we should remove all of this from our register structures some day. namespace arm64_gcc { @@ -88,5 +92,5 @@ enum } -#endif // utility_ARM64_gdb_Registers_h_ +#endif // utility_ARM64_Stabs_Registers_h_ diff --git a/lldb/source/Utility/ARM_GCC_Registers.h b/lldb/source/Utility/ARM_Stabs_Registers.h index 0736f21a8e1..31e4c48d48f 100644 --- a/lldb/source/Utility/ARM_GCC_Registers.h +++ b/lldb/source/Utility/ARM_Stabs_Registers.h @@ -1,4 +1,4 @@ -//===-- ARM_GCC_Registers.h -------------------------------------*- C++ -*-===// +//===-- ARM_Stabs_Registers.h -------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -7,8 +7,12 @@ // //===----------------------------------------------------------------------===// -#ifndef utility_ARM_GCC_Registers_h_ -#define utility_ARM_GCC_Registers_h_ +#ifndef utility_ARM_Stabs_Registers_h_ +#define utility_ARM_Stabs_Registers_h_ + +// The register numbers used in the stabs debug format (sometimes called "gdb" numbers in lldb sources). +// lldb can't read stabs and I don't think anyone serious is still generating it; +// we should remove all of this from our register structures some day. enum { @@ -141,5 +145,5 @@ enum gdb_arm_q14 = 104, // 30 788 16 _vec128 gdb_arm_q15 = 105 // 31 804 16 _vec128 }; -#endif // utility_ARM_GCC_Registers_h_ +#endif // utility_ARM_Stabs_Registers_h_ |