From: Guo Hongyu <guohongy...@mails.ucas.ac.cn> Refer to the link below for a description of the vldi instructions: https://jia.je/unofficial-loongarch-intrinsics-guide/lsx/misc/#synopsis_88 Fixed errors in vldi instruction implementation.
Signed-off-by: Guo Hongyu <guohongy...@mails.ucas.ac.cn> Tested-by: Xianglai Li <lixiang...@loongson.cn> Signed-off-by: Xianglai Li <lixiang...@loongson.cn> Reviewed-by: Bibo Mao <maob...@loongson.cn> Signed-off-by: Bibo Mao <maob...@loongson.cn> (cherry picked from commit 02ce6cea71be4f6774351f5e658d50044c5b53b2) Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2865 Signed-off-by: Michael Tokarev <m...@tls.msk.ru> diff --git a/target/loongarch/tcg/insn_trans/trans_vec.c.inc b/target/loongarch/tcg/insn_trans/trans_vec.c.inc index ba5ca98a33..dff92772ad 100644 --- a/target/loongarch/tcg/insn_trans/trans_vec.c.inc +++ b/target/loongarch/tcg/insn_trans/trans_vec.c.inc @@ -3480,7 +3480,7 @@ static uint64_t vldi_get_value(DisasContext *ctx, uint32_t imm) break; case 1: /* data: {2{16'0, imm[7:0], 8'0}} */ - data = (t << 24) | (t << 8); + data = (t << 40) | (t << 8); break; case 2: /* data: {2{8'0, imm[7:0], 16'0}} */ -- 2.39.5