summaryrefslogtreecommitdiff
path: root/cpu/static_inst.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2004-05-18 16:09:02 -0700
committerSteve Reinhardt <stever@eecs.umich.edu>2004-05-18 16:09:02 -0700
commit4c55d26e664f870d56889097939569c4b07c6de2 (patch)
tree99d89fca614cf82b6fc2dbd317099c7ca2cdf83d /cpu/static_inst.hh
parent02af86f7e813db27b12214ea377948f07f891b69 (diff)
downloadgem5-4c55d26e664f870d56889097939569c4b07c6de2.tar.xz
Replace explicit xc->misspeculating() tests in execute() methods
with an IsNonSpeculative flag. No effect on results of non-full-system or SimpleCPU. Very small impact on full-system FullCPU runs since old wrong-path call_pal insts used to change the PC, where now they're treated as no-ops. arch/alpha/isa_desc: Get rid of xc->misspeculating() checks, use IsNonSpeculative flag instead. cpu/static_inst.hh: Add IsNonSpeculative flag and isNonSpeculative() method to test it. --HG-- extra : convert_revision : 7ec536bfc28b905c429c09eb920ed73ef2beeeba
Diffstat (limited to 'cpu/static_inst.hh')
-rw-r--r--cpu/static_inst.hh5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpu/static_inst.hh b/cpu/static_inst.hh
index 1065fa3d4..088fdbdb7 100644
--- a/cpu/static_inst.hh
+++ b/cpu/static_inst.hh
@@ -106,11 +106,13 @@ class StaticInstBase : public RefCounted
IsThreadSync, ///< Thread synchronization operation.
- IsSerializing, ///< Serializes pipeline: won't until all
+ IsSerializing, ///< Serializes pipeline: won't execute until all
/// older instructions have committed.
IsMemBarrier, ///< Is a memory barrier
IsWriteBarrier, ///< Is a write barrier
+ IsNonSpeculative, ///< Should not be executed speculatively
+
NumFlags
};
@@ -192,6 +194,7 @@ class StaticInstBase : public RefCounted
bool isSerializing() const { return flags[IsSerializing]; }
bool isMemBarrier() const { return flags[IsMemBarrier]; }
bool isWriteBarrier() const { return flags[IsWriteBarrier]; }
+ bool isNonSpeculative() const { return flags[IsNonSpeculative]; }
//@}
/// Operation class. Used to select appropriate function unit in issue.