target-arm: A64: Add SIMD shift by immediate
commit4d1cef840d526c80244175c208260f165f9226db
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 31 Jan 2014 14:47:37 +0000 (31 14:47 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 31 Jan 2014 14:47:37 +0000 (31 14:47 +0000)
treeb7fd4dcf80e62fcf59c68915dff55210aae22068
parent845ea09acc4b5ab8335530aaaf94531c368ba934
target-arm: A64: Add SIMD shift by immediate

This implements a subset of the AdvSIMD shift operations (namely all the
none saturating or narrowing ones). The actual shift generation code
itself is common for both the scalar and vector cases but wrapped with
either vector element iteration or the fp reg access.

The rounding operations need to take special care to correctly reflect
the result of adding rounding bits on high bits as the intermediates do
not truncate.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-arm/translate-a64.c