<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Sounds like each register can very in size each time you stop if I read the docs correctly. As Pavel said "<font face="Menlo-Regular" class="">dynamic_size_dwarf_expr" might work for you here. Registers in a lldb_private::RegisterContext can have their sizes using:</font><div class=""><font face="Menlo-Regular" class=""><br class=""></font></div><div class=""><font face="Menlo-Regular" class="">  uint32_t </font><span style="font-family: Menlo-Regular;" class="">RegisterContext</span>::<span style="font-family: Menlo-Regular;" class="">UpdateDynamicRegisterSize(</span><span style="font-family: Menlo-Regular;" class="">const</span><span style="font-family: Menlo-Regular;" class=""> </span><span style="font-family: Menlo-Regular;" class="">lldb_private</span><span style="font-family: Menlo-Regular;" class="">::</span><span style="font-family: Menlo-Regular;" class="">ArchSpec</span><span style="font-family: Menlo-Regular;" class=""> &arch, </span><span style="font-family: Menlo-Regular;" class="">RegisterInfo</span><span style="font-family: Menlo-Regular;" class=""> *reg_info);</span></div><div class=""><span style="font-family: Menlo-Regular;" class=""><br class=""></span></div><div class=""><span style="font-family: Menlo-Regular;" class="">Now this function isn't currently virtual, so it currently has one way to update the register size that must use the RegisterInfo::</span><font face="Menlo-Regular" class="">dynamic_size_dwarf_expr_bytes and RegisterInfo::dynamic_size_dwarf_len members. But it could be made virtual if your the register size couldn't be determined a DWARF expression and then your register context would need to figure things out on the fly.</font></div><div class=""><font face="Menlo-Regular" class=""><br class=""></font><div class=""><font face="Menlo-Regular" class="">lldb_private::RegisterContext has </font><span style="background-color: rgb(255, 255, 255);" class="">ReadAllRegisterValues and </span><span style="background-color: rgb(255, 255, 255);" class="">WriteAllRegisterValues that is used to save/restore register state before we modify registers values for an expression that gets run in a thread. This might be tricky for this case if the expression you run modifies the SVE register state and prior to running the expression you have a few registers that are a certain number of bytes in size, but after the expression, they have changed. In that case, can you modify the kernels notion of this so that saving and restoring registers works correctly?</span></div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Apr 24, 2019, at 3:07 PM, Omair Javaid via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi,<br class=""><br class="">I am going to be starting work on implementing LLDB support for AArch64/Arm64 scalable vector extension (SVE) in coming weeks. For a quick walk through of SVE please read through this doc here: <a href="https://www.kernel.org/doc/Documentation/arm64/sve.txt" class="">https://www.kernel.org/doc/Documentation/arm64/sve.txt</a><br class=""><br class="">In summary it allows hardware + kernel which support SVE to have variable vector register lengths which can be configured as per system requirements on per process or thread basis. <br class=""><br class="">I have been informed that there might be some downstream patches and I would like to collaborate with anyone who is willing to contribute their completed or in-progress work.<div class=""><br class=""></div><div class="">I would also like to open a discussion on how we can implement variable length registers in LLDB and what could be the consequences of those changes.<br class=""><br class="">Looking forward to hearing from the community.<br class=""><br class="">Thanks!<br class=""><br class="">--<br class="">Omair Javaid<br class=""><a href="http://www.linaro.org/" class="">www.linaro.org</a> <div class=""><br class=""></div></div></div>
_______________________________________________<br class="">lldb-dev mailing list<br class=""><a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev<br class=""></div></blockquote></div><br class=""></div></div></body></html>