diff options
| author | bd <bdunahu@operationnull.com> | 2025-04-17 01:17:48 -0400 | 
|---|---|---|
| committer | bd <bdunahu@operationnull.com> | 2025-04-17 01:17:48 -0400 | 
| commit | 94a0435da91501d2320d6081c552cb5df0c4433d (patch) | |
| tree | 13d2528bbe9cdbd391297ddd150414e576cdaa8e /inc/instrDTO.h | |
| parent | 5e1d59feaa353e7ea4179fd0c8104fc4450a7a16 (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.h | 29 | 
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. | 
