From e35f9eb8d59854164e3103a58aea2d410152730d Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Tue, 16 Apr 2024 20:10:02 +0200 Subject: [PATCH] psw breakpoint --- breakpoint_register.cpp | 8 ++++++++ breakpoint_register.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/breakpoint_register.cpp b/breakpoint_register.cpp index d3c67c0..d0f893a 100644 --- a/breakpoint_register.cpp +++ b/breakpoint_register.cpp @@ -30,6 +30,8 @@ std::string breakpoint_register::get_name(hwreg_t reg) const return "mmr2"; case hr_mmr3: return "mmr3"; + case hr_psw: + return "psw"; } return "???"; @@ -57,6 +59,9 @@ std::optional breakpoint_register::is_triggered() const case hr_mmr3: v = b->getMMR3(); break; + case hr_psw: + v = c->getPSW(); + break; } } @@ -101,6 +106,9 @@ std::pair > breakpoint_registe return { new breakpoint_register(b, hr_mmr0 + which, values), { } }; } + else if (key.substr(0, 3) == "PSW" or key.substr(0, 3) == "psw") { + return { new breakpoint_register(b, hr_psw, values), { } }; + } return { nullptr, { } }; } diff --git a/breakpoint_register.h b/breakpoint_register.h index 45f118b..97efd20 100644 --- a/breakpoint_register.h +++ b/breakpoint_register.h @@ -13,7 +13,7 @@ private: int register_nr { -1 }; std::set values; - enum hwreg_t { hr_mmr0 = 100, hr_mmr1, hr_mmr2, hr_mmr3 }; + enum hwreg_t { hr_mmr0 = 100, hr_mmr1, hr_mmr2, hr_mmr3, hr_psw = 200 }; std::string get_name(hwreg_t reg) const;