From f6f2f32b6dbd1b1e60052cb67f40864c3b5bd74b Mon Sep 17 00:00:00 2001 From: bd Date: Thu, 17 Apr 2025 16:28:36 -0400 Subject: Functioning PUSH/POP --- src/sim/wb.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/sim/wb.cc') diff --git a/src/sim/wb.cc b/src/sim/wb.cc index 08e5ed3..c62468c 100644 --- a/src/sim/wb.cc +++ b/src/sim/wb.cc @@ -28,16 +28,17 @@ void WB::write_handler() throw std::runtime_error("instruction tried to pop a register out of " "an empty queue during writeback."); - this->checked_out.pop_front(); - reg = this->curr_instr->get_checked_out(); - this->store_register(reg, this->curr_instr->get_s1()); - if (this->curr_instr->get_mnemonic() == POP) { // POP performs a second register write reg = this->checked_out.front(); this->checked_out.pop_front(); this->store_register(reg, this->curr_instr->get_s3()); } + + this->checked_out.pop_front(); + reg = this->curr_instr->get_checked_out(); + this->store_register(reg, this->curr_instr->get_s1()); + } void WB::jump_handler() -- cgit v1.2.3