diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2009-02-25 10:17:49 -0800 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2009-02-25 10:17:49 -0800 |
commit | 6325245e3ea7fae6609d0e9854c5ee7279140c02 (patch) | |
tree | 4c2e0bd623b55e8a2e6f02d43e4eb74f61296c6e /src/arch/x86/isa/decoder/two_byte_opcodes.isa | |
parent | dadc30b0a4dcf50c20c9d2b33890b94323fa0394 (diff) | |
download | gem5-6325245e3ea7fae6609d0e9854c5ee7279140c02.tar.xz |
X86: Implement the longmode versions of the syscall instruction.
Diffstat (limited to 'src/arch/x86/isa/decoder/two_byte_opcodes.isa')
-rw-r--r-- | src/arch/x86/isa/decoder/two_byte_opcodes.isa | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa index 67845fe8d..887b5bb14 100644 --- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa @@ -254,7 +254,13 @@ } } #if FULL_SYSTEM - 0x05: syscall(); + 0x05: decode MODE_MODE { + 0x0: decode MODE_SUBMODE { + 0x0: Inst::SYSCALL_64(); + 0x1: Inst::SYSCALL_COMPAT(); + } + 0x1: Inst::SYSCALL_LEGACY(); + } #else 0x05: SyscallInst::syscall('xc->syscall(Rax)', IsSyscall); #endif |