summaryrefslogtreecommitdiff
path: root/inc/instrDTO.h
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-17 01:17:48 -0400
committerbd <bdunahu@operationnull.com>2025-04-17 01:17:48 -0400
commit94a0435da91501d2320d6081c552cb5df0c4433d (patch)
tree13d2528bbe9cdbd391297ddd150414e576cdaa8e /inc/instrDTO.h
parent5e1d59feaa353e7ea4179fd0c8104fc4450a7a16 (diff)
Keep track of checked out in DTO to simplify wb cond logic (bug)
Diffstat (limited to 'inc/instrDTO.h')
-rw-r--r--inc/instrDTO.h29
1 files changed, 14 insertions, 15 deletions
diff --git a/inc/instrDTO.h b/inc/instrDTO.h
index b6dec06..755ab9f 100644
--- a/inc/instrDTO.h
+++ b/inc/instrDTO.h
@@ -15,19 +15,16 @@ class InstrDTO
InstrDTO();
~InstrDTO() = default;
- /**
- * @return hist entry for Accessor
- */
- int get_time_of(Accessor);
- /**
- * @return id_cycle
- */
int get_id_cycle();
/**
* @return instr_bits
*/
signed int get_instr_bits();
/**
+ * @return checked_out
+ */
+ signed int get_checked_out();
+ /**
* @return s1
*/
signed int get_s1();
@@ -53,14 +50,14 @@ class InstrDTO
unsigned int get_pc();
/**
- * @param set hist key
- */
- void set_time_of(Accessor, int);
- /**
* @param instr_bits
*/
void set_instr_bits(signed int);
/**
+ * @param checked_out
+ */
+ void set_checked_out(signed int);
+ /**
* @param s1
*/
void set_s1(signed int);
@@ -88,14 +85,16 @@ class InstrDTO
private:
/**
- * The clock cycle each stage finished an operation.
- */
- std::unordered_map<Accessor, int> hist;
- /**
* The raw bits encoding the instruction.
*/
signed int instr_bits;
/**
+ * The register, if any, this instruction has checked out. A checked out
+ * register cannot be checked out by another register. This prevents RAW
+ * conflicts.
+ */
+ signed int checked_out;
+ /**
* Slots in this instruction, for storing temporary registers, immediates,
* or other.
* Some instruction types may use these differently.