target/arm: Fix sign-extension in sve do_ldr/do_str
commit19f2acc915a0f8f443a959844540a6f09133cc96
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 16 Aug 2018 13:05:27 +0000 (16 14:05 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 16 Aug 2018 13:05:27 +0000 (16 14:05 +0100)
treea8188298065d9cfe82e90867b8d97d98c3b780af
parent573ec0fe40b9a412085ac7dfb41975a0fc2b28dd
target/arm: Fix sign-extension in sve do_ldr/do_str

The expression (int) imm + (uint32_t) len_align turns into uint32_t
and thus with negative imm produces a memory operation at the wrong
offset.  None of the numbers involved are particularly large, so
change everything to use int.

Cc: qemu-stable@nongnu.org (3.0.1)
Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/translate-sve.c