From d142a1547cfc7e06964e2cb34905f3e4304c93fd Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 24 Nov 2019 23:43:10 -0800 Subject: [PATCH] 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 --- src/arch/x86/pseudo_inst.cc | 4 ---- 1 file changed, 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); } /* -- 2.30.2