]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
target/arm: Zero-extend writeback for fp16 FCVTZS (scalar, integer)
authorRichard Henderson <richard.henderson@linaro.org>
Fri, 24 May 2024 23:20:18 +0000 (16:20 -0700)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 28 May 2024 13:29:01 +0000 (14:29 +0100)
Fixes RISU mismatch for "fcvtzs h31, h0, #14".

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240524232121.284515-5-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/tcg/translate-a64.c

index 4126aaa27e62d88d6d440874366d629bdb8b7792..d97acdbaf9af04482ef181c8af28baedf2f5b360 100644 (file)
@@ -8707,6 +8707,9 @@ static void handle_simd_shift_fpint_conv(DisasContext *s, bool is_scalar,
             read_vec_element_i32(s, tcg_op, rn, pass, size);
             fn(tcg_op, tcg_op, tcg_shift, tcg_fpstatus);
             if (is_scalar) {
+                if (size == MO_16 && !is_u) {
+                    tcg_gen_ext16u_i32(tcg_op, tcg_op);
+                }
                 write_fp_sreg(s, rd, tcg_op);
             } else {
                 write_vec_element_i32(s, tcg_op, rd, pass, size);