summaryrefslogtreecommitdiff
path: root/src/cpu/o3/regfile.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3/regfile.hh')
-rw-r--r--src/cpu/o3/regfile.hh21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/cpu/o3/regfile.hh b/src/cpu/o3/regfile.hh
index 943df35b9..00b4ef045 100644
--- a/src/cpu/o3/regfile.hh
+++ b/src/cpu/o3/regfile.hh
@@ -182,6 +182,27 @@ class PhysRegFile
return &miscRegIds[reg_idx];
}
+ /** Set a physical register as tainted */
+ void setTaint(PhysRegIdPtr phys_reg) {
+ RegIndex idx = phys_reg->index();
+ switch (phys_reg->classValue()) {
+ case IntRegClass:
+ intTaintMap[idx] = true;
+ break;
+ case FloatRegClass:
+ floatTaintMap[idx] = true;
+ break;
+ case CCRegClass:
+ ccTaintMap[idx] = true;
+ break;
+ case MiscRegClass:
+ miscTaintMap[idx] = true;
+ break;
+ default:
+ break;
+ }
+ }
+
/** Reads an integer register. */
uint64_t readIntReg(PhysRegIdPtr phys_reg) const
{