From patchwork Mon Mar 21 08:03:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bastian Koppelmann X-Patchwork-Id: 8630191 Return-Path: X-Original-To: patchwork-qemu-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 594899F372 for ; Mon, 21 Mar 2016 08:03:26 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C591D20272 for ; Mon, 21 Mar 2016 08:03:25 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DF7E520270 for ; Mon, 21 Mar 2016 08:03:24 +0000 (UTC) Received: from localhost ([::1]:56180 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahuo8-0006PN-Ba for patchwork-qemu-devel@patchwork.kernel.org; Mon, 21 Mar 2016 04:03:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39189) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahunz-0006P8-W2 for qemu-devel@nongnu.org; Mon, 21 Mar 2016 04:03:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ahunx-0005Ul-IV for qemu-devel@nongnu.org; Mon, 21 Mar 2016 04:03:15 -0400 Received: from mail.uni-paderborn.de ([131.234.142.9]:43401) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahunx-0005U5-Cj for qemu-devel@nongnu.org; Mon, 21 Mar 2016 04:03:13 -0400 Received: from pova.uni-paderborn.de ([131.234.189.23] helo=localhost.localdomain) by mail.uni-paderborn.de with esmtp (Exim 4.84_2 spheron) id 1ahunv-0000OY-GE for qemu-devel@nongnu.org; Mon, 21 Mar 2016 09:03:11 +0100 Received: from mail.uni-paderborn.de by pova with queue id 1075683-2 for qemu-devel@nongnu.org; Mon, 21 Mar 2016 08:03:10 GMT Received: from kbastian@mail.uni-paderborn.de (ip-84-118-248-54.unity-media.net [84.118.248.54]) by mail.uni-paderborn.de with SMTP id 1ahunu-0008Hy-5t; Mon, 21 Mar 2016 08:03:10 GMT (envelope-from kbastian@mail.uni-paderborn.de) X-Envelope-From: Received: from ip-84-118-248-54.unity-media.net ([84.118.248.54] helo=schnipp.localdomain) by mail.uni-paderborn.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_CBC_SHA256:128) (Exim 4.84_2 telepax) id 1ahunu-0008Hy-5t; Mon, 21 Mar 2016 09:03:10 +0100 From: Bastian Koppelmann To: qemu-devel@nongnu.org Date: Mon, 21 Mar 2016 09:03:03 +0100 Message-Id: <1458547383-23102-4-git-send-email-kbastian@mail.uni-paderborn.de> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1458547383-23102-1-git-send-email-kbastian@mail.uni-paderborn.de> References: <1458547383-23102-1-git-send-email-kbastian@mail.uni-paderborn.de> X-PMX-Version: 6.3.0.2556906, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2016.3.21.75717 X-IMT-Spam-Score: 0.0 () X-IMT-Authenticated-Sender: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 131.234.142.9 Cc: kbastian@mail.uni-paderborn.de Subject: [Qemu-devel] [PATCH v2 3/3] target-tricore: Fix psw_read() clearing too many bits X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP psw_read() ought to sync the PSW value with the cached status bits (C,V,SV,AV,SAV). For this the bits are cleared in the PSW before they are written from the cached bits. The clear mask is too big and clears two additional bits. Signed-off-by: Bastian Koppelmann --- target-tricore/helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-tricore/helper.c b/target-tricore/helper.c index 7d96dad..adbb6db 100644 --- a/target-tricore/helper.c +++ b/target-tricore/helper.c @@ -113,7 +113,7 @@ void tricore_cpu_list(FILE *f, fprintf_function cpu_fprintf) uint32_t psw_read(CPUTriCoreState *env) { /* clear all USB bits */ - env->PSW &= 0xffffff; + env->PSW &= 0x6ffffff; /* now set them from the cache */ env->PSW |= ((env->PSW_USB_C != 0) << 31); env->PSW |= ((env->PSW_USB_V & (1 << 31)) >> 1);