X86: Make the halt microop non-speculative.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 14 Sep 2010 19:31:37 +0000 (12:31 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 14 Sep 2010 19:31:37 +0000 (12:31 -0700)
Executing this microop makes the CPU halt even if it was misspeculated.

src/arch/x86/isa/microops/specop.isa

index f6978075b76f19c77dff7250d8e59ceacfd7c2a9..52420f175947c64ab58041b4a512dbccf9b05e6b 100644 (file)
@@ -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)
         {
         }