target-arm: Fix shift by immediate and narrow where src, dest overlap
commit92cdfaeb616244581df02ef10ba1ee1bb8d90f70
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 21 Feb 2011 11:05:22 +0000 (21 11:05 +0000)
committerAurelien Jarno <aurelien@aurel32.net>
Mon, 21 Feb 2011 14:39:03 +0000 (21 15:39 +0100)
treeabcaede87cd0e3a33494be82342420720e57d473
parentc33171c7f22ba60aad2d011af91d665807b4aced
target-arm: Fix shift by immediate and narrow where src, dest overlap

For Neon shifts by immediate and narrow, correctly handle the case
where the source registers and the destination registers overlap
(the second pass should use the original register contents, not the
results of the first pass).

This includes a refactoring to pull the size check outside the
loop rather than inside, since there is now very little common
code between the size == 3 and size != 3 case.

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