x86: Stop manually clearing RFLAGS.RF after a system call.
authorGabe Black <gabeblack@google.com>
Mon, 25 Nov 2019 07:43:10 +0000 (23:43 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 10 Dec 2019 23:58:14 +0000 (23:58 +0000)
The system call stub KVM uses in SE mode to call the system call
pseudo instruction which ultimately calls m5Syscall already uses
sysret, and the implementation of sysret clears both the RF and VM bits
itself. There's no reason to do that again explicitly here.

Jira Issue: https://gem5.atlassian.net/browse/GEM5-187

Change-Id: Id7b5417564e3f3492ba6efb8ed36fab2f4c38e09
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23175
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/arch/x86/pseudo_inst.cc

index 6c1a7f8bf8040ac51758b31dfbd4a5084619f564..62d8b25c53d25e8418e38cbf15552d1b0354dc01 100644 (file)
@@ -51,10 +51,6 @@ m5Syscall(ThreadContext *tc)
 
     Fault fault;
     tc->syscall(tc->readIntReg(INTREG_RAX), &fault);
-
-    RegVal rflags = tc->readMiscReg(MISCREG_RFLAGS);
-    rflags &= ~(1 << 16);
-    tc->setMiscReg(MISCREG_RFLAGS, rflags);
 }
 
 /*