target-arm: Fix VLD of single element to all lanes
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 15 Mar 2011 16:26:51 +0000 (16:26 +0000)
committerAurelien Jarno <aurelien@aurel32.net>
Fri, 1 Apr 2011 20:33:47 +0000 (22:33 +0200)
commitd806a0381ddadf148e15b3b031342c1b29a7b1b5
treeb1c36d400bf36f68b0d20a29492b9aa383c71d9b
parente7de25e27b0878b8bbc295d03548980d3e6cdecd
target-arm: Fix VLD of single element to all lanes

Fix several bugs in VLD of single element to all lanes:

The "single element to all lanes" form of VLD1 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). Handle this by special-casing VLD1 rather than trying to
have one loop which deals with both VLD1 and 2/3/4.

Handle VLD4.32 with 16 byte alignment specified, rather than UNDEFfing.

UNDEF for the invalid size and alignment combinations.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm/translate.c