#
f290efc3 |
| 27-Aug-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*
gdbserver does not expose combined ymm* registers but rather XSAVE-style split xmm* and ymm*h portions. Extend value_regs to support
[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*
gdbserver does not expose combined ymm* registers but rather XSAVE-style split xmm* and ymm*h portions. Extend value_regs to support combining multiple registers and use it to create user-friendly ymm* registers that are combined from split xmm* and ymm*h portions.
Differential Revision: https://reviews.llvm.org/D108937
show more ...
|
#
ee11612e |
| 19-Oct-2021 |
Michał Górny <mgorny@moritz.systems> |
Revert "[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*"
This reverts commit 5352ea4a721ef252129994111b83dc350ecc71da. It seems to have broken the arm buildbot.
|
#
5352ea4a |
| 27-Aug-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*
gdbserver does not expose combined ymm* registers but rather XSAVE-style split xmm* and ymm*h portions. Extend value_regs to support
[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*
gdbserver does not expose combined ymm* registers but rather XSAVE-style split xmm* and ymm*h portions. Extend value_regs to support combining multiple registers and use it to create user-friendly ymm* registers that are combined from split xmm* and ymm*h portions.
Differential Revision: https://reviews.llvm.org/D108937
show more ...
|
#
239b4d62 |
| 15-Oct-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [Utility] Remove Status::WasInterrupted() along with its only use
Remove Status::WasInterrupted() that checks whether the underlying error code matches EINTR. ProcessGDBRemote::ConnectToDebu
[lldb] [Utility] Remove Status::WasInterrupted() along with its only use
Remove Status::WasInterrupted() that checks whether the underlying error code matches EINTR. ProcessGDBRemote::ConnectToDebugserver() is its only call site, and it does not seem correct there. After all, EINTR is precisely when we want to retry, not stop retrying. Furthermore, it should not really matter since we should be catching EINTR immediately via llvm::sys::RetryAfterSignal() but that's another story.
Differential Revision: https://reviews.llvm.org/D111908
show more ...
|
#
a3939e15 |
| 15-Oct-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb] Return StringRef from PluginInterface::GetPluginName
There is no reason why this function should be returning a ConstString.
While modifying these files, I also fixed several instances where
[lldb] Return StringRef from PluginInterface::GetPluginName
There is no reason why this function should be returning a ConstString.
While modifying these files, I also fixed several instances where GetPluginName and GetPluginNameStatic were returning different strings.
I am not changing the return type of GetPluginNameStatic in this patch, as that would necessitate additional changes, and this patch is big enough as it is.
Differential Revision: https://reviews.llvm.org/D111877
show more ...
|
#
bda5fe8f |
| 20-Aug-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [gdb-remote] Fix displaying i387_ext & vec regs with gdbserver
Adjust the encoding and format applied to i387_ext and vec* type registers from gdbserver to match lldb-server. Both types are
[lldb] [gdb-remote] Fix displaying i387_ext & vec regs with gdbserver
Adjust the encoding and format applied to i387_ext and vec* type registers from gdbserver to match lldb-server. Both types are now displayed as vector of uint8 instead of float and integer formats used before. Additionally, this fixes display of STi registers when they do not carry floating-point data (they are also used to hold MMX vectors).
Differential Revision: https://reviews.llvm.org/D108468
show more ...
|
#
66063277 |
| 08-Oct-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [DynamicRegisterInfo] Support setting from vector<Register>
Add an overload of DynamicRegisterInfo::SetRegisterInfo() that accepts a std::vector<Register> as an argument. This moves the conv
[lldb] [DynamicRegisterInfo] Support setting from vector<Register>
Add an overload of DynamicRegisterInfo::SetRegisterInfo() that accepts a std::vector<Register> as an argument. This moves the conversion from DRI::Register to RegisterInfo directly into DynamicRegisterInfo, and avoids the necessity of creating fully-compatible intermediate RegisterInfo instances.
While the new method could technically reuse AddRegister(), the ultimate goal is to replace AddRegister() with SetRegisterInfo() entirely.
Differential Revision: https://reviews.llvm.org/D111435
show more ...
|
#
58492191 |
| 05-Oct-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [ABI] Apply AugmentRegisterInfo() to DynamicRegisterInfo::Registers
Call ABI::AugmentRegisterInfo() once with a vector of all defined registers rather than calling it for every individual reg
[lldb] [ABI] Apply AugmentRegisterInfo() to DynamicRegisterInfo::Registers
Call ABI::AugmentRegisterInfo() once with a vector of all defined registers rather than calling it for every individual register. Move and rename RemoteRegisterInfo from gdb-remote to DynamicRegisterInfo::Register, and use this class when augmenting registers.
Differential Revision: https://reviews.llvm.org/D111142
show more ...
|
#
f4145c07 |
| 07-Oct-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/gdb-remote] Refactor ReadExtFeature
replace stl and lldb apis with standard llvm ones.
|
#
3d7161e3 |
| 07-Oct-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb] Remove shared_ptr from some global Properties objects
they're unnecessary, make the code longer, and their removal actually ensures proper initialization in multithreaded scenarios.
|
#
81a2f393 |
| 07-Oct-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/gdb-remote] Delete SendPacketsAndConcatenateResponses
ReadExtFeature provides equivalent functionality. Also fix a but in ReadExtFeature, which prevented it from being used for auxv data (it c
[lldb/gdb-remote] Delete SendPacketsAndConcatenateResponses
ReadExtFeature provides equivalent functionality. Also fix a but in ReadExtFeature, which prevented it from being used for auxv data (it contains nul characters).
show more ...
|
#
202af507 |
| 23-Sep-2021 |
Pavel Labath <pavel@labath.sk> |
Recommit: [lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
The previous version of the patch did not update the definitions in conditionally compiled code. This patch includ
Recommit: [lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
The previous version of the patch did not update the definitions in conditionally compiled code. This patch includes changes to ARC and windows targets.
Original commit message was:
These were added to support some mips registers on linux, but linux mips support has now been removed due.
They are still referenced in the freebds mips implementation, but the completeness of that implementation is also unknown. All other architectures just set these fields to zero, which is a cause of significant bloat in our register info definitions.
Arm also has registers with variable sizes, but they were implemented in a more gdb-compatible fashion and don't use this feature.
Differential Revision: https://reviews.llvm.org/D110914
show more ...
|
#
b2c906da |
| 06-Oct-2021 |
Michael Forster <forster@google.com> |
Revert "[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo"
This reverts commit 00e704bf080ffeeb9e334fb3ab71594f9aa50969.
This commit should should have updated llvm/llvm-pro
Revert "[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo"
This reverts commit 00e704bf080ffeeb9e334fb3ab71594f9aa50969.
This commit should should have updated llvm/llvm-project/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp like the other architectures.
show more ...
|
#
00e704bf |
| 23-Sep-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
These were added to support some mips registers on linux, but linux mips support has now been removed due.
They are still r
[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo
These were added to support some mips registers on linux, but linux mips support has now been removed due.
They are still referenced in the freebds mips implementation, but the completeness of that implementation is also unknown. All other architectures just set these fields to zero, which is a cause of significant bloat in our register info definitions.
Arm also has registers with variable sizes, but they were implemented in a more gdb-compatible fashion and don't use this feature.
Differential Revision: https://reviews.llvm.org/D110914
show more ...
|
#
d2b9d0fd |
| 06-Oct-2021 |
Muhammad Omair Javaid <omair.javaid@linaro.org> |
Round XML register bitsize to byte boundary
This patch allows LLDB to accept register sizes which are not aligned to 8 bits bitsize boundary. This fixes a crash in LLDB when connecting to OpenOCD st
Round XML register bitsize to byte boundary
This patch allows LLDB to accept register sizes which are not aligned to 8 bits bitsize boundary. This fixes a crash in LLDB when connecting to OpenOCD stub. GDB xml description allows for non-aligned bit lengths but they are rounded off to nearest byte during transfer. In case of OpenOCD some of SOC specific system registers were less than a single byte in length and were causing LLDB to crash.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D111131
show more ...
|
#
f6e3abc5 |
| 29-Sep-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb/gdb-remote] Remove last_stop_packet_mutex
This is a remnant of the non-stop mode.
|
#
156cb4cc |
| 27-Sep-2021 |
Pavel Labath <pavel@labath.sk> |
[lldb] Remove non-stop mode code
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issu
[lldb] Remove non-stop mode code
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issues that need to be resolved before this feature can really be supported.
It also complicates making further changes to stop reply packet handling, which is what I am about to do.
Differential Revision: https://reviews.llvm.org/D110553
show more ...
|
#
f4b71e34 |
| 26-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
[llvm] [ADT] Add a range/iterator-based Split()
Add a llvm::Split() implementation that can be used via range-for loop, e.g.:
for (StringRef x : llvm::Split("foo,bar,baz", ',')) ...
The
[llvm] [ADT] Add a range/iterator-based Split()
Add a llvm::Split() implementation that can be used via range-for loop, e.g.:
for (StringRef x : llvm::Split("foo,bar,baz", ',')) ...
The implementation uses an additional SplittingIterator class that uses StringRef::split() internally.
Differential Revision: https://reviews.llvm.org/D110496
show more ...
|
#
e2f780fb |
| 25-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [gdb-remote] Use llvm::StringRef.split() and llvm::to_integer()
Replace the uses of StringConvert combined with hand-rolled array splitting with llvm::StringRef.split() and llvm::to_integer()
[lldb] [gdb-remote] Use llvm::StringRef.split() and llvm::to_integer()
Replace the uses of StringConvert combined with hand-rolled array splitting with llvm::StringRef.split() and llvm::to_integer().
Differential Revision: https://reviews.llvm.org/D110472
show more ...
|
#
3a6ba367 |
| 24-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] Convert misc. StringConvert uses
Replace misc. StringConvert uses with llvm::to_integer() and llvm::to_float(), except for cases where further refactoring is planned. The purpose of this cha
[lldb] Convert misc. StringConvert uses
Replace misc. StringConvert uses with llvm::to_integer() and llvm::to_float(), except for cases where further refactoring is planned. The purpose of this change is to eliminate the StringConvert API that is duplicate to LLVM, and less correct in behavior at the same time.
Differential Revision: https://reviews.llvm.org/D110447
show more ...
|
#
cc3c788a |
| 20-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs
Switch the gdb-remote client logic to use local (LLDB) register numbers in value_regs/invalidate_regs rather than remote regnos. T
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs
Switch the gdb-remote client logic to use local (LLDB) register numbers in value_regs/invalidate_regs rather than remote regnos. This involves translating regnos received from lldb-server.
Differential Revision: https://reviews.llvm.org/D110027
show more ...
|
#
fa456505 |
| 18-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [gdb-remote] Refactor getting remote regs to use local vector
Refactor remote register getters to collect them into a local std::vector rather than adding them straight into DynamicRegisterIn
[lldb] [gdb-remote] Refactor getting remote regs to use local vector
Refactor remote register getters to collect them into a local std::vector rather than adding them straight into DynamicRegisterInfo. The purpose of this change is to lay groundwork for switching value_regs and invalidate_regs to use local LLDB register numbers rather than remote numbers.
Differential Revision: https://reviews.llvm.org/D110025
show more ...
|
#
bcb6b97c |
| 23-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
Revert "[lldb] [gdb-remote] Refactor getting remote regs to use local vector"
This reverts commit b03e701c145365ba339657ead54a2e0cc5c02776. This is causing regressions when XML support is disabled.
|
#
12504f50 |
| 23-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
Revert "[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs"
This reverts commit 6fbed33d4a7de2229c40e6318f223092d3a23848. The prerequisite commit is causing regressions.
|
#
6fbed33d |
| 20-Sep-2021 |
Michał Górny <mgorny@moritz.systems> |
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs
Switch the gdb-remote client logic to use local (LLDB) register numbers in value_regs/invalidate_regs rather than remote regnos. T
[lldb] [gdb-remote] Use local regnos for value_regs/invalidate_regs
Switch the gdb-remote client logic to use local (LLDB) register numbers in value_regs/invalidate_regs rather than remote regnos. This involves translating regnos received from lldb-server.
Differential Revision: https://reviews.llvm.org/D110027
show more ...
|