return m_sve_ptrace_payload.data();
}
+std::vector<uint32_t> NativeRegisterContextLinux_arm64::GetExpeditedRegisters(
+ ExpeditedRegs expType) const {
+ std::vector<uint32_t> expedited_reg_nums =
+ NativeRegisterContext::GetExpeditedRegisters(expType);
+ if (m_sve_state == SVEState::FPSIMD || m_sve_state == SVEState::Full)
+ expedited_reg_nums.push_back(GetRegisterInfo().GetRegNumSVEVG());
+
+ return expedited_reg_nums;
+}
+
#endif // defined (__arm64__) || defined (__aarch64__)
gdbremote_testcase.GdbRemoteTestCaseBase):
mydir = TestBase.compute_mydir(__file__)
- @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet
-
+ # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet
+ @skipIfDarwinEmbedded
def gather_expedited_registers(self):
# Setup the stub and set the gdb remote command stream.
procs = self.prep_debug_monitor_and_inferior(inferior_args=["sleep:2"])
self.assertTrue(reg_info["lldb_register_index"] in expedited_registers)
self.trace("{} reg_info:{}".format(generic_register_name, reg_info))
+ def stop_notification_contains_aarch64_vg_register(self):
+ # Generate a stop reply, parse out expedited registers from stop
+ # notification.
+ expedited_registers = self.gather_expedited_registers()
+ self.assertIsNotNone(expedited_registers)
+ self.assertTrue(len(expedited_registers) > 0)
+
+ # Gather target register infos.
+ reg_infos = self.gather_register_infos()
+
+ # Find the vg register.
+ reg_info = self.find_register_with_name_and_dwarf_regnum(
+ reg_infos, 'vg', '46')
+ self.assertIsNotNone(reg_info)
+
+ # Ensure the expedited registers contained it.
+ self.assertTrue(reg_info["lldb_register_index"] in expedited_registers)
+ self.trace("{} reg_info:{}".format('vg', reg_info))
+
def stop_notification_contains_any_registers(self):
# Generate a stop reply, parse out expedited registers from stop
# notification.
self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_sp_register()
+
+ @llgs_test
+ @skipIf(archs=no_match(["aarch64"]))
+ @skipIf(oslist=no_match(['linux']))
+ def test_stop_notification_contains_vg_register_llgs(self):
+ if not self.isAArch64SVE():
+ self.skipTest('SVE registers must be supported.')
+ self.init_llgs_test()
+ self.build()
+ self.set_inferior_startup_launch()
+ self.stop_notification_contains_aarch64_vg_register()