llvm-project/lldb
Pavel Labath bc8cc867a1 elf-core: Convert remaining register context to use register set maps
In https://reviews.llvm.org/D39681, we started using a map instead
passing a long list of register sets to the ppc64le register context.
However, existing register contexts were still using the old method.

This converts the remaining register contexts to use this approach.
While doing that, I've had to modify the approach a bit:
- the general purpose register set is still kept as a separate field,
because this one is always present, and it's parsing is somewhat
different than that of other register sets.
- since the same register sets have different IDs on different operating
systems, but we use the same register context class to represent
different register sets, I've needed to add a layer of indirection to
translate os-specific constants (e.g. NETBSD::NT_AMD64_FPREGS) into more
generic terms (e.g. floating point register set).

While slightly more complicated, this setup allows for better separation
of concerns. The parsing code in ProcessElfCore can focus on parsing
OS-specific core file notes, and can completely ignore
architecture-specific register sets (by just storing any unrecognised
notes in a map). These notes will then be passed on to the
architecture-specific register context, which can just deal with
architecture specifics, because the OS-specific note types are hidden in
a register set description map.

This way, adding an register set, which is already supported on other
OSes, to a new OS, should in most cases be as simple as adding a new
entry into the register set description map.

Differential Revision: https://reviews.llvm.org/D40133

llvm-svn: 319162
2017-11-28 11:10:23 +00:00
..
cmake Fix LLVM_LINK_LLVM_DYLIB build (pr35053) 2017-10-31 13:23:19 +00:00
docs Adding Support for Error Strings in Remote Packets 2017-07-12 11:15:34 +00:00
examples Fixed up to use a class for the commands, renamed the commands and added a way to just dump the compile unit full paths and optionally their support files with the new "dump-files"command. 2017-11-16 17:14:48 +00:00
include/lldb Mark UUID::GetByteSize() const 2017-11-27 21:16:37 +00:00
lit [CMake] Build clang as dependency when using in-tree clang for tests. 2017-10-27 21:22:57 +00:00
lldb.xcodeproj Update xcode project file to build new ppc64le files. 2017-11-17 01:55:50 +00:00
lldb.xcworkspace Revert r275223, which committed the wrong thing. 2016-07-12 23:31:42 +00:00
packages/Python/lldbsuite Fix floating point register write on new x86 linux kernels 2017-11-28 10:56:54 +00:00
resources Bump the lldb version # in the xcode project files from 2016-03-15 04:36:11 +00:00
scripts Revert r317182 for https://reviews.llvm.org/D39128 2017-11-02 03:17:07 +00:00
source elf-core: Convert remaining register context to use register set maps 2017-11-28 11:10:23 +00:00
test Add a dependency from check-lldb on lld 2017-11-06 19:25:33 +00:00
third_party/Python/module *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
tools Recognize another magic token sent in the LaunchInfo's EventData. 2017-11-17 01:22:34 +00:00
unittests Fix netbsd, freebsd and osx builds for ArchSpec move 2017-11-13 16:47:37 +00:00
utils *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
www Added a way to dump the full paths to all source files in a module that has debug info. 2017-11-10 22:39:07 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format Updated .clang-format rules so bring LLDB in line with LLVM standards. 2016-09-06 17:19:00 +00:00
.gitignore test infra: clear file-charged issues on rerun of file 2016-10-01 00:17:08 +00:00
CMakeLists.txt Default to using in-tree clang for building test executables 2017-10-27 02:24:04 +00:00
CODE_OWNERS.txt Remove Sean Callanan from the CODE_OWNERS, he won't have time 2017-11-01 01:38:42 +00:00
INSTALL.txt Changed builld-llvm.py to use .json files 2017-02-23 02:21:34 +00:00
LICENSE.TXT
use_lldb_suite_root.py *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00