From: Gabe Black Date: Mon, 25 Nov 2019 07:43:10 +0000 (-0800) Subject: x86: Stop manually clearing RFLAGS.RF after a system call. X-Git-Tag: v19.0.0.0~201 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d142a1547cfc7e06964e2cb34905f3e4304c93fd;p=gem5.git 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 Reviewed-by: Gabe Black Maintainer: Gabe Black --- 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); } /*