This is an archive of the discontinued LLVM Phabricator instance.

Extend max register size to accommodate AArch64 SVE vector regs
ClosedPublic

Authored by omjavaid on Mar 30 2020, 2:32 AM.

Details

Summary

This patch increases maximum register size to 256 bytes to accommodate AArch64 SVE registers maximum possible size of 256 bytes.

Diff Detail

Event Timeline

omjavaid created this revision.Mar 30 2020, 2:32 AM
danielkiss added inline comments.Mar 30 2020, 6:48 AM
lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
2051

Could we use the kMaxRegisterByteSize here?

labath added a comment.Apr 1 2020, 5:00 AM

Sounds fairly noncontroversial. I don't think we have too many of these objects floating around, but if it turns out we do, we could switch to a SmallVector to optimize for the common case of smaller registers.

lldb/include/lldb/Utility/RegisterValue.h
264

how about we stick to uint16_t here ?

lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
2051

An excellent idea.

omjavaid marked 2 inline comments as done.Apr 2 2020, 4:03 AM

Sounds fairly noncontroversial. I don't think we have too many of these objects floating around, but if it turns out we do, we could switch to a SmallVector to optimize for the common case of smaller registers.

DataExtractor is used for caching register values on stop by gdb-remote register context. RegisterValue is mostly used for passing around register values temporarily during read/write.
lldb/include/lldb/Utility/RegisterValue.h
264

ACK.

lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
2051

ACK.

omjavaid updated this revision to Diff 254479.Apr 2 2020, 4:17 AM

Posting full diff.

labath accepted this revision.Apr 6 2020, 6:45 AM
This revision is now accepted and ready to land.Apr 6 2020, 6:45 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptApr 28 2020, 7:59 PM