summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2010-09-14 12:31:37 -0700
committerGabe Black <gblack@eecs.umich.edu>2010-09-14 12:31:37 -0700
commit2dd9f4fcf02c68eb86a6742576eecb3eef3b9ddf (patch)
tree90d78afa2e9225e737897ace7997306b18652daa
parent0bbd88eb40e553deaabd6fbc935a596125701a86 (diff)
downloadgem5-2dd9f4fcf02c68eb86a6742576eecb3eef3b9ddf.tar.xz
X86: Make the halt microop non-speculative.
Executing this microop makes the CPU halt even if it was misspeculated.
-rw-r--r--src/arch/x86/isa/microops/specop.isa4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/arch/x86/isa/microops/specop.isa b/src/arch/x86/isa/microops/specop.isa
index f6978075b..52420f175 100644
--- a/src/arch/x86/isa/microops/specop.isa
+++ b/src/arch/x86/isa/microops/specop.isa
@@ -61,7 +61,9 @@ output header {{
public:
MicroHalt(ExtMachInst _machInst, const char * instMnem,
uint64_t setFlags) :
- X86MicroopBase(_machInst, "halt", instMnem, setFlags, No_OpClass)
+ X86MicroopBase(_machInst, "halt", instMnem,
+ setFlags | (ULL(1) << StaticInst::IsNonSpeculative),
+ No_OpClass)
{
}