mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
target/arm: Implement VFP fp16 for VMOV immediate
Implement VFP fp16 support for the VMOV immediate insn. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20200828183354.27913-10-peter.maydell@linaro.org
This commit is contained in:
parent
ce2d65a5d1
commit
28c28728e5
2 changed files with 24 additions and 0 deletions
|
@ -2161,6 +2161,28 @@ MAKE_VFM_TRANS_FNS(hp)
|
||||||
MAKE_VFM_TRANS_FNS(sp)
|
MAKE_VFM_TRANS_FNS(sp)
|
||||||
MAKE_VFM_TRANS_FNS(dp)
|
MAKE_VFM_TRANS_FNS(dp)
|
||||||
|
|
||||||
|
static bool trans_VMOV_imm_hp(DisasContext *s, arg_VMOV_imm_sp *a)
|
||||||
|
{
|
||||||
|
TCGv_i32 fd;
|
||||||
|
|
||||||
|
if (!dc_isar_feature(aa32_fp16_arith, s)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s->vec_len != 0 || s->vec_stride != 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!vfp_access_check(s)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
fd = tcg_const_i32(vfp_expand_imm(MO_16, a->imm));
|
||||||
|
neon_store_reg32(fd, a->vd);
|
||||||
|
tcg_temp_free_i32(fd);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static bool trans_VMOV_imm_sp(DisasContext *s, arg_VMOV_imm_sp *a)
|
static bool trans_VMOV_imm_sp(DisasContext *s, arg_VMOV_imm_sp *a)
|
||||||
{
|
{
|
||||||
uint32_t delta_d = 0;
|
uint32_t delta_d = 0;
|
||||||
|
|
|
@ -154,6 +154,8 @@ VFMS_dp ---- 1110 1.10 .... .... 1011 .1.0 .... @vfp_dnm_d
|
||||||
VFNMA_dp ---- 1110 1.01 .... .... 1011 .0.0 .... @vfp_dnm_d
|
VFNMA_dp ---- 1110 1.01 .... .... 1011 .0.0 .... @vfp_dnm_d
|
||||||
VFNMS_dp ---- 1110 1.01 .... .... 1011 .1.0 .... @vfp_dnm_d
|
VFNMS_dp ---- 1110 1.01 .... .... 1011 .1.0 .... @vfp_dnm_d
|
||||||
|
|
||||||
|
VMOV_imm_hp ---- 1110 1.11 .... .... 1001 0000 .... \
|
||||||
|
vd=%vd_sp imm=%vmov_imm
|
||||||
VMOV_imm_sp ---- 1110 1.11 .... .... 1010 0000 .... \
|
VMOV_imm_sp ---- 1110 1.11 .... .... 1010 0000 .... \
|
||||||
vd=%vd_sp imm=%vmov_imm
|
vd=%vd_sp imm=%vmov_imm
|
||||||
VMOV_imm_dp ---- 1110 1.11 .... .... 1011 0000 .... \
|
VMOV_imm_dp ---- 1110 1.11 .... .... 1011 0000 .... \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue