--- nono/debugger/debugger_m88xx0.h 2026/04/29 17:04:33 1.1.1.2 +++ nono/debugger/debugger_m88xx0.h 2026/04/29 17:04:40 1.1.1.4 @@ -26,17 +26,19 @@ class DebuggerMD_m88xx0 : public Debugge uint64 TranslateAddr(saddr_t laddr) override; // XXX ? - uint32 GetPC() const override { return cpu->Getxip(); } + uint32 GetPC() const override { return cpu->GetXIP(); } void SetStepOut() override; bool IsStepOut() const override; + bool IsOpStepIn(uint32 op) override; uint64 GetRegAddr(const char *name) const override; void BackupRegs() override; bool ShowRegister(Console *cons, const std::vector& args) override; const HelpMessages& GetRegisterHelp() const override; - Object& GetBrHist() const override { return cpu->brhist; } + BranchHistory& GetBrHist() const override { return cpu->brhist; } + BranchHistory& GetExHist() const override { return cpu->exhist; } bool CheckLEA(uint32 laddr) override { bool rv = cpu->lastaddr == laddr; @@ -51,15 +53,19 @@ class DebuggerMD_m88xx0 : public Debugge std::string FormatDisasmLive(const std::string& mnemonic, const std::vector& bin) override; + const char *GetExceptionName(int vector) const override; + private: - m88kcpu *cpu = NULL; // CPU コア - m88100reg prev {}; + m88kcpu *cpu {}; // CPU コア + m88100reg prev {}; // 前回のレジスタセットのコピー // 前回アクセス時の論理ページ。.addr == 0xffffffff なら無効。 // [0] が Inst、[1] が Data XXX とりあえず - saddr_t last_lpage[2]; - uint32 last_ppage[2]; + saddr_t last_lpage[2] {}; + uint32 last_ppage[2] {}; + static bool IsBB0(uint32 op); + static bool IsTB0(uint32 op); static bool IsBBTB0(uint32 op); static bool IsBB1(uint32 op); static bool IsTB1(uint32 op); @@ -81,7 +87,7 @@ class DebuggerMD_m88xx0 : public Debugge // cmp 命令後の分岐命令で結果レジスタを表示するため、 // cmp 命令のデスティネーションレジスタを覚えておく。 // -1 なら該当しないの意。 - int cmp_rd; + int cmp_rd {}; - uint32 so_r1 = 0; // ステップアウト判定用 + uint32 so_r1 {}; // ステップアウト判定用 };