[Lldb-commits] [lldb] [lldb][debugserver] Read/write SME registers on arm64 (PR #119171)
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 9 06:33:57 PST 2024
DavidSpickett wrote:
> But when we are asking for a single register (e.g. Z0) when not in SSVE/SME mode, this should return an error.
I assume you did what we did for Linux, where the inactive registers do not dissapear from the register list but just fail to read.
Linux also returns all 0s for the array register when it's disabled, but this is I think more about keeping the register offsets valid than anything practical.
> I considered having debugserver report the vector length in granules to match the Linux behavior, but the kernel was giving me the value in bytes and I think it's a more natural representation, so I stuck with it.
To repeat what I said over email to Jason -
This "vector granule" possibly comes from a time before SVE was finalised and we (Arm) did not know exactly how the vector length would be reported. Our simulators use this "granule" term and it made it into GDB via that.
The Linux kernel does not report in granules it does the same as Darwin, bytes. We (Linaro) added "vg" to be compatible with GDB and QEMU.
Bytes is the more useful reporting unit because the SVE programming question is always "how many units of X bytes fit into the vector length".
https://github.com/llvm/llvm-project/pull/119171
More information about the lldb-commits
mailing list