summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-11-24 23:43:10 -0800
committerGabe Black <gabeblack@google.com>2019-12-10 23:58:14 +0000
commitd142a1547cfc7e06964e2cb34905f3e4304c93fd (patch)
tree0b6bd17660d4a3d8e0c6d70ebe7e98ce33511788
parent4670de81004b6bb10cff2cc8c3414d67eda3b0b5 (diff)
downloadgem5-d142a1547cfc7e06964e2cb34905f3e4304c93fd.tar.xz
x86: Stop manually clearing RFLAGS.RF after a system call.
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>
-rw-r--r--src/arch/x86/pseudo_inst.cc4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/arch/x86/pseudo_inst.cc b/src/arch/x86/pseudo_inst.cc
index 6c1a7f8bf..62d8b25c5 100644
--- a/src/arch/x86/pseudo_inst.cc
+++ b/src/arch/x86/pseudo_inst.cc
@@ -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);
}
/*