From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44764 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PzX5N-0008FP-Ud for qemu-devel@nongnu.org; Tue, 15 Mar 2011 12:27:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PzX5J-0008OD-LQ for qemu-devel@nongnu.org; Tue, 15 Mar 2011 12:27:03 -0400 Received: from mnementh.archaic.org.uk ([81.2.115.146]:39968) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PzX5J-0008ND-Dm for qemu-devel@nongnu.org; Tue, 15 Mar 2011 12:27:01 -0400 From: Peter Maydell Date: Tue, 15 Mar 2011 16:26:50 +0000 Message-Id: <1300206412-29014-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 0/2] ARM: fix VLD of one element to all lanes List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: patches@linaro.org This patchset fixes various bugs in the implementation of the Neon instructions loading a single element to all lanes. The primary bug is that VLD1's "single element to all lanes" form differs from those for VLD2, VLD3 and VLD4 in that bit 5 indicates whether the loaded element should be written to one or two Dregs, rather than being a register stride. (This is the issue addressed by Meego commit 6f3b4ee, although my choice of fix is different.) We were also incorrectly UNDEFfing VLD4.32 with 16 byte alignment specifier, failing to UNDEF for invalid size and alignment combinations, and leaking a TCG temporary on the UNDEF code paths. Tested via the usual random instruction set testing, and also with the valgrind 'neon64' test case. Peter Maydell (2): target-arm: Fix VLD of single element to all lanes target-arm: Don't leak TCG temp for UNDEFs in Neon load/store space target-arm/translate.c | 92 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 65 insertions(+), 27 deletions(-)