From patchwork Fri Feb 11 13:35:25 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 125 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:40:11 -0000 Delivered-To: patches@linaro.org Received: by 10.147.124.5 with SMTP id b5cs217508yan; Fri, 11 Feb 2011 05:35:29 -0800 (PST) Received: by 10.216.171.19 with SMTP id q19mr453113wel.53.1297431328333; Fri, 11 Feb 2011 05:35:28 -0800 (PST) Received: from mnementh.archaic.org.uk (mnementh.archaic.org.uk [81.2.115.146]) by mx.google.com with ESMTPS id n4si910355wej.152.2011.02.11.05.35.27 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 11 Feb 2011 05:35:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) client-ip=81.2.115.146; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) smtp.mail=pm215@archaic.org.uk Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.69) (envelope-from ) id 1Pnt9h-0004Wa-Qw; Fri, 11 Feb 2011 13:35:25 +0000 From: Peter Maydell To: qemu-devel@nongnu.org Cc: patches@linaro.org Subject: [PATCH] target-arm: Correct conversion of Thumb Neon dp encodings into ARM Date: Fri, 11 Feb 2011 13:35:25 +0000 Message-Id: <1297431325-17371-1-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 From: Juha Riihimäki We handle Thumb Neon data processing instructions by converting them into the equivalent ARM encoding, as the two are very close. However the ARM encoding should have bit 28 set, not clear. This wasn't causing any problems because we don't actually look at that bit during decode; however it is better to do the conversion correctly to avoid problems later if we add checks to UNDEF on SBZ/SBO bits. Signed-off-by: Juha Riihimäki Reviewed-by: Peter Maydell --- target-arm/translate.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/target-arm/translate.c b/target-arm/translate.c index 3087a5d..793fd59 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -8011,7 +8011,7 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1) /* Coprocessor. */ if (((insn >> 24) & 3) == 3) { /* Translate into the equivalent ARM encoding. */ - insn = (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4); + insn = (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4) | (1 << 28); if (disas_neon_data_insn(env, s, insn)) goto illegal_op; } else {