From nobody Thu Nov 13 04:40:20 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1578038588; cv=none; d=zohomail.com; s=zohoarc; b=ADgkg3AgZ/FnQwgiT54QQH/QWmF7p0qA5b5olQu4hqP8KN7C2o8gZNmxegU6iAnwhWuw7cbEWibJ6eQHlqWcIPMLZuPD/CreZnI1d2YipSgJNcPn4Op1GQgsM5DDhMgphDCk7ytmCpZPuRUcZLvxT6HaK6FzVz7zEvzIz4TD4VA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578038588; h=Content-Type:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=Er0RgKglGNebt/t947iZsE4b0v1yFBXpn6qL7jmaHQY=; b=j3fuTO+TLJM/UIt45d/G3uaiiRzCUNiti35k1lXJQdWzUX0i8xNluh6o+FFIJSHx6TUMQWSdzqX3HSrhu2NwpBcc+WFJWuJVPhi4t2To4eiGEMF/uItAvoDOCeaRimiQl1i0YxMoWy178MIP65x1O0GWVlr1yEW+GJBS9xRMt94= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1578038588061257.6269742029791; Fri, 3 Jan 2020 00:03:08 -0800 (PST) Received: from localhost ([::1]:49742 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1inHvG-0003eu-Aq for importer@patchew.org; Fri, 03 Jan 2020 03:03:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60622) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1inEBn-00063D-Sh for qemu-devel@nongnu.org; Thu, 02 Jan 2020 23:03:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1inEBl-0003GR-RT for qemu-devel@nongnu.org; Thu, 02 Jan 2020 23:03:54 -0500 Received: from mail1.windriver.com ([147.11.146.13]:34826) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1inEBl-00035n-FE; Thu, 02 Jan 2020 23:03:53 -0500 Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail1.windriver.com (8.15.2/8.15.2) with ESMTPS id 0033rlmD027404 (version=TLSv1 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 2 Jan 2020 19:53:47 -0800 (PST) Received: from pek-vx-bsp3.wrs.com (128.224.156.141) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server (TLS) id 14.3.468.0; Thu, 2 Jan 2020 19:53:46 -0800 From: Yiting Wang To: Alistair Francis , Bastian Koppelmann , Palmer Dabbelt , Sagar Karandikar , , Subject: [PATCH] riscv: Set xPIE to 1 after xRET Date: Fri, 3 Jan 2020 11:53:42 +0800 Message-ID: <1578023622-49180-1-git-send-email-yiting.wang@windriver.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [128.224.156.141] X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 147.11.146.13 X-Mailman-Approved-At: Fri, 03 Jan 2020 03:01:32 -0500 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When executing an xRET instruction, supposing xPP holds the value y, xIE is set to xPIE; the privilege mode is changed to y; xPIE is set to 1. But QEMU sets xPIE to 0 incorrectly. Signed-off-by: Yiting Wang Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Tested-by: Bin Meng --- target/riscv/op_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 331cc36..e87c911 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -93,7 +93,7 @@ target_ulong helper_sret(CPURISCVState *env, target_ulong= cpu_pc_deb) env->priv_ver >=3D PRIV_VERSION_1_10_0 ? MSTATUS_SIE : MSTATUS_UIE << prev_priv, get_field(mstatus, MSTATUS_SPIE)); - mstatus =3D set_field(mstatus, MSTATUS_SPIE, 0); + mstatus =3D set_field(mstatus, MSTATUS_SPIE, 1); mstatus =3D set_field(mstatus, MSTATUS_SPP, PRV_U); riscv_cpu_set_mode(env, prev_priv); env->mstatus =3D mstatus; @@ -118,7 +118,7 @@ target_ulong helper_mret(CPURISCVState *env, target_ulo= ng cpu_pc_deb) env->priv_ver >=3D PRIV_VERSION_1_10_0 ? MSTATUS_MIE : MSTATUS_UIE << prev_priv, get_field(mstatus, MSTATUS_MPIE)); - mstatus =3D set_field(mstatus, MSTATUS_MPIE, 0); + mstatus =3D set_field(mstatus, MSTATUS_MPIE, 1); mstatus =3D set_field(mstatus, MSTATUS_MPP, PRV_U); riscv_cpu_set_mode(env, prev_priv); env->mstatus =3D mstatus; --=20 2.7.4