jasonmolenda wrote: Sorry for missing this one earlier. I'm a little confused about earlier in this method,
``` for (uint32_t i = 0; i < k_num_sme_register; ++i, ++sme_regnum) { m_sme_regnum_collection.push_back(sme_regnum); m_dynamic_reg_infos.push_back(g_register_infos_sme[i]); m_dynamic_reg_infos[sme_regnum].byte_offset = m_dynamic_reg_infos[sme_regnum - 1].byte_offset + m_dynamic_reg_infos[sme_regnum - 1].byte_size; m_dynamic_reg_infos[sme_regnum].kinds[lldb::eRegisterKindLLDB] = sme_regnum; } lldb_private::RegisterSet sme_regset = g_reg_set_sme_arm64; if (has_zt) { m_sme_regnum_collection.push_back(sme_regnum); m_dynamic_reg_infos.push_back(g_register_infos_sme2[0]); m_dynamic_reg_infos[sme_regnum].byte_offset = m_dynamic_reg_infos[sme_regnum - 1].byte_offset + m_dynamic_reg_infos[sme_regnum - 1].byte_size; m_dynamic_reg_infos[sme_regnum].kinds[lldb::eRegisterKindLLDB] = sme_regnum; sme_regset.num_registers += 1; } ``` At the end of the loops, `sme_regnum` is the index of the final SME register we've added to `m_dynamic_reg_infos`. Then if we have the ZT0 register, we reuse that index a second time when adding ZT0 don't we. I don't know if it has anything to do with the issue at hand, but it seems like `sme_regnum` needs to be incremented if `has_zt` and we're adding one more to the vector. https://github.com/llvm/llvm-project/pull/140875 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits