From: Peter Maydell Date: Thu, 4 Jul 2019 16:14:44 +0000 (+0100) Subject: target/arm: Correct VMOV_imm_dp handling of short vectors X-Git-Tag: v4.1.0-rc0~14^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=89a11ff756410aecb87d2c774df6e45dbf4105c1;p=thirdparty%2Fqemu.git target/arm: Correct VMOV_imm_dp handling of short vectors Coverity points out (CID 1402195) that the loop in trans_VMOV_imm_dp() that iterates over the destination registers in a short-vector VMOV accidentally throws away the returned updated register number from vfp_advance_dreg(). Add the missing assignment. (We got this correct in trans_VMOV_imm_sp().) Fixes: 18cf951af9a27ae573a Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20190702105115.9465-1-peter.maydell@linaro.org --- diff --git a/target/arm/translate-vfp.inc.c b/target/arm/translate-vfp.inc.c index deaddb04421..092eb5ec53d 100644 --- a/target/arm/translate-vfp.inc.c +++ b/target/arm/translate-vfp.inc.c @@ -1971,7 +1971,7 @@ static bool trans_VMOV_imm_dp(DisasContext *s, arg_VMOV_imm_dp *a) /* Set up the operands for the next iteration */ veclen--; - vfp_advance_dreg(vd, delta_d); + vd = vfp_advance_dreg(vd, delta_d); } tcg_temp_free_i64(fd);