summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-27 09:25:43 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-27 09:25:43 -0800
commitc3d7d7ed0e3931d549a14ef8b32a1619861f3ef0 (patch)
tree5543c1d011e2fffecfae59811b93c6036bfc0115 /src/arch
parent5c1cc99d486870bb6942980474b535ec0917f85c (diff)
downloadgem5-c3d7d7ed0e3931d549a14ef8b32a1619861f3ef0.tar.xz
X86: Implement sysenter as a system call interface.
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/isa/decoder/two_byte_opcodes.isa4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
index 64920bcbd..c3fb5c19d 100644
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
@@ -420,7 +420,11 @@
0x1: Inst::RDTSC();
0x2: Inst::RDMSR();
0x3: rdpmc();
+#if FULL_SYSTEM
0x4: sysenter();
+#else
+ 0x4: SyscallInst::sysenter('xc->syscall(Rax)', IsSyscall);
+#endif
0x5: sysexit();
0x6: Inst::UD2();
0x7: getsec();