From 255685534aab23d52a08ea5f87fb4dffadff2899 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 22 Oct 2010 00:23:50 -0700 Subject: [PATCH] X86: Make syscall instructions non-speculative in SE. --- src/arch/x86/isa/decoder/one_byte_opcodes.isa | 3 ++- src/arch/x86/isa/decoder/two_byte_opcodes.isa | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa index 4874b6102..80f603503 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -402,7 +402,8 @@ // the first byte. 0x5: decode IMMEDIATE { -0x80: - SyscallInst::int80('xc->syscall(Rax)', IsSyscall); + SyscallInst::int80('xc->syscall(Rax)', + IsSyscall, IsNonSpeculative); default: int_Ib(); } #endif diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa index b8ed1fdbe..27824c8aa 100644 --- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa @@ -228,7 +228,8 @@ 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 { @@ -404,7 +405,8 @@ #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(); -- 2.30.2