diff options
| author | Omair Javaid <omair.javaid@linaro.org> | 2015-04-14 07:30:20 +0000 |
|---|---|---|
| committer | Omair Javaid <omair.javaid@linaro.org> | 2015-04-14 07:30:20 +0000 |
| commit | 3f57216ca45258e4dbae7f0490530dcaa52a6b52 (patch) | |
| tree | 3aa5306bf3a1c6baba302b6799a563145f4723de /lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp | |
| parent | ff499469e0fa4a7f19082d7efe3b1a1f94631be1 (diff) | |
| download | llvm-3f57216ca45258e4dbae7f0490530dcaa52a6b52.tar.gz llvm-3f57216ca45258e4dbae7f0490530dcaa52a6b52.tar.bz2 llvm-3f57216ca45258e4dbae7f0490530dcaa52a6b52.zip | |
Adds Register Context Linux/POSIX for ARM Architecture
This patch is major step towards supporting lldb on ARM.
This adds all the required bits to support register manipulation on Linux Arm.
Also adds utility enumerations, definitions and register context classes for arm.
llvm-svn: 234870
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp')
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp b/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp index 240803ab9559..455caa1789d4 100644 --- a/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp @@ -13,6 +13,7 @@ #include <sstream> #include "NativeProcessLinux.h" +#include "NativeRegisterContextLinux_arm.h" #include "NativeRegisterContextLinux_arm64.h" #include "NativeRegisterContextLinux_x86_64.h" #include "NativeRegisterContextLinux_mips64.h" @@ -29,6 +30,7 @@ #include "Plugins/Process/POSIX/CrashReason.h" +#include "Plugins/Process/Utility/RegisterContextLinux_arm.h" #include "Plugins/Process/Utility/RegisterContextLinux_arm64.h" #include "Plugins/Process/Utility/RegisterContextLinux_i386.h" #include "Plugins/Process/Utility/RegisterContextLinux_x86_64.h" @@ -184,6 +186,10 @@ NativeThreadLinux::GetRegisterContext () assert((HostInfo::GetArchitecture ().GetAddressByteSize() == 8) && "Register setting path assumes this is a 64-bit host"); reg_interface = static_cast<RegisterInfoInterface*>(new RegisterContextLinux_arm64(target_arch)); break; + case llvm::Triple::arm: + assert(HostInfo::GetArchitecture ().GetAddressByteSize() == 4); + reg_interface = static_cast<RegisterInfoInterface*>(new RegisterContextLinux_arm(target_arch)); + break; case llvm::Triple::x86: case llvm::Triple::x86_64: if (HostInfo::GetArchitecture().GetAddressByteSize() == 4) @@ -242,6 +248,12 @@ NativeThreadLinux::GetRegisterContext () m_reg_context_sp.reset (new NativeRegisterContextLinux_arm64(*this, concrete_frame_idx, reg_interface)); break; } + case llvm::Triple::arm: + { + const uint32_t concrete_frame_idx = 0; + m_reg_context_sp.reset (new NativeRegisterContextLinux_arm(*this, concrete_frame_idx, reg_interface)); + break; + } case llvm::Triple::x86: case llvm::Triple::x86_64: { |
