llvm-project/lldb/source
Muhammad Omair Javaid b6f9d7b8fb Cleanup and speedup NativeRegisterContextLinux_arm64
Summary:
This patch simplifies register accesses in NativeRegisterContextLinux_arm64
and also adds some bare minimum caching to avoid multiple calls to ptrace
during a stop.

Linux ptrace returns data in the form of structures containing GPR/FPR data.
This means that one single call is enough to read all GPRs or FPRs. We do
that once per stop and keep reading from or writing to the buffer that we
have in NativeRegisterContextLinux_arm64 class. Before a resume or detach we
write all buffers back.

This is tested on aarch64 thunder x1 with Ubuntu 18.04. Also tested
regressions on x86_64.

Reviewers: labath, clayborg

Reviewed By: labath

Subscribers: kristof.beyls, lldb-commits

Differential Revision: https://reviews.llvm.org/D69371
2019-12-06 22:18:57 +05:00
..
API [lldb/Reproducers] Don't instrument SBFileSpec::GetPath 2019-12-04 18:20:20 -08:00
Breakpoint [lldb][NFC] Migrate FileSpec::Dump to raw_ostream 2019-12-06 09:40:42 +01:00
Commands [lldb][NFC] Migrate FileSpec::Dump to raw_ostream 2019-12-06 09:40:42 +01:00
Core [lldb] Migrate VMRange::Dump to raw_ostream 2019-12-06 10:19:20 +01:00
DataFormatters [TypeCategory] HasLanguage() is now unused. 2019-12-03 15:45:23 -08:00
Expression [lldb] Migrate VMRange::Dump to raw_ostream 2019-12-06 10:19:20 +01:00
Host [lldb] Fix macOS build by replacing nullptr with FileSpec() 2019-12-04 14:37:10 +01:00
Initialization [Reproducer] Use ::rtrim() to remove trailing control characters. 2019-10-18 17:11:48 +00:00
Interpreter [lldb][NFC] Migrate FileSpec::Dump to raw_ostream 2019-12-06 09:40:42 +01:00
Plugins Cleanup and speedup NativeRegisterContextLinux_arm64 2019-12-06 22:18:57 +05:00
Symbol [lldb][NFC] Migrate FileSpec::Dump to raw_ostream 2019-12-06 09:40:42 +01:00
Target [lldb][NFC] Move Address and AddressRange functions out of Stream and let them take raw_ostream 2019-12-05 14:41:33 +01:00
Utility [lldb][NFC] Move [SU]Int64ValueIsValidForByteSize to RegisterValue 2019-12-06 11:16:39 +01:00
CMakeLists.txt [CMake] Remove Apple-specific version logic. 2019-04-17 18:23:22 +00:00
lldb.cpp [CMake] Remove Apple-specific version logic. 2019-04-17 18:23:22 +00:00