X86: Make syscall instructions non-speculative in SE.
authorGabe Black <gblack@eecs.umich.edu>
Fri, 22 Oct 2010 07:23:50 +0000 (00:23 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Fri, 22 Oct 2010 07:23:50 +0000 (00:23 -0700)
src/arch/x86/isa/decoder/one_byte_opcodes.isa
src/arch/x86/isa/decoder/two_byte_opcodes.isa

index 4874b61024b8c6b200d450a85e93ce35d3275a9d..80f60350356c7773ec6cc5373d0d297eda64cdd3 100644 (file)
                 // the first byte.
                 0x5: decode IMMEDIATE {
                     -0x80:
-                         SyscallInst::int80('xc->syscall(Rax)', IsSyscall);
+                         SyscallInst::int80('xc->syscall(Rax)',
+                                 IsSyscall, IsNonSpeculative);
                     default: int_Ib();
                 }
 #endif
index b8ed1fdbe532b04635a6acc5b9ae20440af97a65..27824c8aaf57a11fd7c57c2b14fa04731cbde7b4 100644 (file)
                     0x1: Inst::SYSCALL_LEGACY();
                 }
 #else
-                0x05: SyscallInst::syscall('xc->syscall(Rax)', IsSyscall);
+                0x05: SyscallInst::syscall('xc->syscall(Rax)',
+                              IsSyscall, IsNonSpeculative);
 #endif
                 0x06: Inst::CLTS();
                 0x07: decode MODE_SUBMODE {
 #if FULL_SYSTEM
                 0x4: sysenter();
 #else
-                0x4: SyscallInst::sysenter('xc->syscall(Rax)', IsSyscall);
+                0x4: SyscallInst::sysenter('xc->syscall(Rax)',
+                             IsSyscall, IsNonSpeculative);
 #endif
                 0x5: sysexit();
                 0x6: Inst::UD2();