[Lldb-commits] [PATCH] D155269: [lldb][AArch64] Add SME streaming vector length pseudo register

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jul 18 01:20:21 PDT 2023


jasonmolenda added a comment.

In D155269#4509364 <https://reviews.llvm.org/D155269#4509364>, @DavidSpickett wrote:

> I think in https://reviews.llvm.org/D154926, `lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/TestSVERegisters.py` addresses this. If what you mean is you are stopped in streaming mode, you evaluate an expression that may call a function which takes you into another mode.

Oh it sounds like you've already been thinking about this, no worries.  I was thinking about the mere act of restoring the register state.  When lldb does a function call, it saves all of the register contents, does the function call, then restores the registers.  This was traditionally done with the g/G (read/write the entire register context), if that is supported by the stub.  Alternatively registers can all be read/written individually.  As a simplification of all of this, and to avoid using g/G, we added QSaveRegisterState which tells the stub (debugserver etc) to save the current register context, and then after the inferior function call has completed, QRestoreRegisterState to restore them all.

In the process of restoring / writing the registers, I expect we will try to write the floating point register contents into the process which would drop it out of SSVE mode?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D155269/new/

https://reviews.llvm.org/D155269



More information about the lldb-commits mailing list