[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 58/69] target/arm: Convert FCVT* (vector, fixed-point) scalar
From: |
Richard Henderson |
Subject: |
[PATCH v3 58/69] target/arm: Convert FCVT* (vector, fixed-point) scalar to decodetree |
Date: |
Wed, 11 Dec 2024 10:30:25 -0600 |
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/tcg/translate-a64.c | 4 +---
target/arm/tcg/a64.decode | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c
index 71f1d6f778..894befef4d 100644
--- a/target/arm/tcg/translate-a64.c
+++ b/target/arm/tcg/translate-a64.c
@@ -9535,9 +9535,6 @@ static void disas_simd_scalar_shift_imm(DisasContext *s,
uint32_t insn)
handle_simd_shift_intfp_conv(s, true, false, is_u, immh, immb,
opcode, rn, rd);
break;
- case 0x1f: /* FCVTZS, FCVTZU */
- handle_simd_shift_fpint_conv(s, true, false, is_u, immh, immb, rn, rd);
- break;
default:
case 0x00: /* SSHR / USHR */
case 0x02: /* SSRA / USRA */
@@ -9551,6 +9548,7 @@ static void disas_simd_scalar_shift_imm(DisasContext *s,
uint32_t insn)
case 0x11: /* SQRSHRUN */
case 0x12: /* SQSHRN, UQSHRN */
case 0x13: /* SQRSHRN, UQRSHRN */
+ case 0x1f: /* FCVTZS, FCVTZU */
unallocated_encoding(s);
break;
}
diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode
index f7fcc32adc..f66f62da4f 100644
--- a/target/arm/tcg/a64.decode
+++ b/target/arm/tcg/a64.decode
@@ -1682,6 +1682,25 @@ FCVTAS_f 0101 1110 0.1 00001 11001 0 ..... .....
@icvt_sd
FCVTAU_f 0111 1110 011 11001 11001 0 ..... ..... @icvt_h
FCVTAU_f 0111 1110 0.1 00001 11001 0 ..... ..... @icvt_sd
+%fcvt_f_sh_h 16:4 !function=rsub_16
+%fcvt_f_sh_s 16:5 !function=rsub_32
+%fcvt_f_sh_d 16:6 !function=rsub_64
+
+@fcvt_fixed_h .... .... . 001 .... ...... rn:5 rd:5 \
+ &fcvt sf=0 esz=1 shift=%fcvt_f_sh_h
+@fcvt_fixed_s .... .... . 01 ..... ...... rn:5 rd:5 \
+ &fcvt sf=0 esz=2 shift=%fcvt_f_sh_s
+@fcvt_fixed_d .... .... . 1 ...... ...... rn:5 rd:5 \
+ &fcvt sf=0 esz=3 shift=%fcvt_f_sh_d
+
+FCVTZS_f 0101 1111 0 ....... 111111 ..... ..... @fcvt_fixed_h
+FCVTZS_f 0101 1111 0 ....... 111111 ..... ..... @fcvt_fixed_s
+FCVTZS_f 0101 1111 0 ....... 111111 ..... ..... @fcvt_fixed_d
+
+FCVTZU_f 0111 1111 0 ....... 111111 ..... ..... @fcvt_fixed_h
+FCVTZU_f 0111 1111 0 ....... 111111 ..... ..... @fcvt_fixed_s
+FCVTZU_f 0111 1111 0 ....... 111111 ..... ..... @fcvt_fixed_d
+
# Advanced SIMD two-register miscellaneous
SQABS_v 0.00 1110 ..1 00000 01111 0 ..... ..... @qrr_e
--
2.43.0
- [PATCH v3 47/69] target/arm: Remove helper_neon_{add,sub}l_u{16,32}, (continued)
- [PATCH v3 47/69] target/arm: Remove helper_neon_{add,sub}l_u{16,32}, Richard Henderson, 2024/12/11
- [PATCH v3 48/69] target/arm: Introduce clear_vec, Richard Henderson, 2024/12/11
- [PATCH v3 49/69] target/arm: Convert XTN, SQXTUN, SQXTN, UQXTN to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 50/69] target/arm: Convert FCVTN, BFCVTN to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 51/69] target/arm: Convert FCVTXN to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 52/69] target/arm: Convert SHLL to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 53/69] target/arm: Implement gen_gvec_fabs, gen_gvec_fneg, Richard Henderson, 2024/12/11
- [PATCH v3 56/69] target/arm: Convert FRINT* (vector) to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 55/69] target/arm: Convert FSQRT (vector) to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 57/69] target/arm: Convert FCVT* (vector, integer) scalar to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 58/69] target/arm: Convert FCVT* (vector, fixed-point) scalar to decodetree,
Richard Henderson <=
- [PATCH v3 54/69] target/arm: Convert FABS, FNEG (vector) to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 59/69] target/arm: Convert [US]CVTF (vector, integer) scalar to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 60/69] target/arm: Convert [US]CVTF (vector, fixed-point) scalar to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 61/69] target/arm: Rename helper_gvec_vcvt_[hf][su] with _rz, Richard Henderson, 2024/12/11
- [PATCH v3 62/69] target/arm: Convert [US]CVTF (vector) to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 63/69] target/arm: Convert FCVTZ[SU] (vector, fixed-point) to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 64/69] target/arm: Convert FCVT* (vector, integer) to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 66/69] target/arm: Convert FRECPE, FRECPX, FRSQRTE to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 65/69] target/arm: Convert handle_2misc_fcmp_zero to decodetree, Richard Henderson, 2024/12/11
- [PATCH v3 67/69] target/arm: Introduce gen_gvec_urecpe, gen_gvec_ursqrte, Richard Henderson, 2024/12/11