From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52113) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YsEAV-0007aE-D0 for qemu-devel@nongnu.org; Tue, 12 May 2015 13:40:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YsEAP-0007fG-Rh for qemu-devel@nongnu.org; Tue, 12 May 2015 13:40:35 -0400 Received: from mail-qk0-x235.google.com ([2607:f8b0:400d:c09::235]:34528) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YsEAP-0007et-3s for qemu-devel@nongnu.org; Tue, 12 May 2015 13:40:29 -0400 Received: by qkgx75 with SMTP id x75so10908207qkg.1 for ; Tue, 12 May 2015 10:40:28 -0700 (PDT) Received: from anchor.com (50-194-63-110-static.hfc.comcastbusiness.net. [50.194.63.110]) by mx.google.com with ESMTPSA id f4sm13701736qhe.9.2015.05.12.10.40.27 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 May 2015 10:40:27 -0700 (PDT) Sender: Richard Henderson From: Richard Henderson Date: Tue, 12 May 2015 10:39:33 -0700 Message-Id: <1431452387-20280-4-git-send-email-rth@twiddle.net> In-Reply-To: <1431452387-20280-1-git-send-email-rth@twiddle.net> References: <1431452387-20280-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PATCH v2 03/17] target-alpha: Forget installed round mode after MT_FPCR List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org When we use QUAL_RM_D, we copy fpcr_dyn_round to float_status. When we install a new FPCR value, we update fpcr_dyn_round. Reset the status of the cache so that we re-copy for the next fp insn that requires dynamic rounding. Signed-off-by: Richard Henderson --- target-alpha/translate.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target-alpha/translate.c b/target-alpha/translate.c index b3c5dca..94dab26 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -2199,6 +2199,11 @@ static ExitStatus translate_one(DisasContext *ctx, uint32_t insn) /* MT_FPCR */ va = load_fpr(ctx, ra); gen_helper_store_fpcr(cpu_env, va); + if (ctx->tb_rm == QUAL_RM_D) { + /* Re-do the copy of the rounding mode to fp_status + the next time we use dynamic rounding. */ + ctx->tb_rm = -1; + } break; case 0x025: /* MF_FPCR */ -- 2.1.0