From: Christophe Lyon <christophe.l...@st.com> Handle unsigned variant of VQ(R)SHRN instructions.
Signed-off-by: Christophe Lyon <christophe.l...@st.com> --- target-arm/translate.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/target-arm/translate.c b/target-arm/translate.c index a614e34..61d4c4c 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -4865,8 +4865,12 @@ static int disas_neon_data_insn(CPUState * env, DisasContext *s, uint32_t insn) } else { /* VSHRN / VRSHRN */ gen_neon_narrow(size - 1, tmp, cpu_V0); } - } else { /* VQSHRN / VQRSHRN */ - gen_neon_narrow_satu(size - 1, tmp, cpu_V0); + } else { + if (u) { /* VQSHRUN / VQRSHRUN */ + gen_neon_narrow_satu(size - 1, tmp, cpu_V0); + } else { /* VQSHRN / VQRSHRN */ + gen_neon_narrow_sats(size - 1, tmp, cpu_V0); + } } neon_store_reg(rd, pass, tmp); } /* for pass */ -- 1.7.2.3