From 94a0435da91501d2320d6081c552cb5df0c4433d Mon Sep 17 00:00:00 2001 From: bd Date: Thu, 17 Apr 2025 01:17:48 -0400 Subject: Keep track of checked out in DTO to simplify wb cond logic (bug) --- src/sim/id.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/sim/id.cc') diff --git a/src/sim/id.cc b/src/sim/id.cc index d4b56d2..3d5baef 100644 --- a/src/sim/id.cc +++ b/src/sim/id.cc @@ -38,7 +38,14 @@ Response ID::read_guard(signed int &v) void ID::write_guard(signed int &v) { - this->checked_out.push_back(v); + // zero register shouldn't be written. + if (v != 0) { + // keep track in the instrDTO for displaying to user and writeback + // keep track in checked_out so we can still access this information! + this->checked_out.push_back(v); + this->curr_instr->set_checked_out(v); + std::cout << "checked out: " << v << std::endl; + } v = this->dereference_register(v); } -- cgit v1.2.3