From: Bibo Mao Date: Thu, 12 Dec 2024 08:22:34 +0000 (+0800) Subject: target/loongarch: Use actual operand size with vbsrl check X-Git-Tag: v9.2.1~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15eedfd2ff08e34fe19d86dd41d0ee646fa7774d;p=thirdparty%2Fqemu.git target/loongarch: Use actual operand size with vbsrl check Hardcoded 32 bytes is used for vbsrl emulation check, there is problem when options lsx=on,lasx=off is used for vbsrl.v instruction in TCG mode. It injects LASX exception rather LSX exception. Here actual operand size is used. Cc: qemu-stable@nongnu.org Fixes: df97f338076 ("target/loongarch: Implement xvreplve xvinsve0 xvpickve") Signed-off-by: Bibo Mao Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé (cherry picked from commit d41989e7548397b469ec9c7be4cee699321a317e) Signed-off-by: Michael Tokarev --- diff --git a/target/loongarch/tcg/insn_trans/trans_vec.c.inc b/target/loongarch/tcg/insn_trans/trans_vec.c.inc index 92b1d22e289..ba5ca98a33c 100644 --- a/target/loongarch/tcg/insn_trans/trans_vec.c.inc +++ b/target/loongarch/tcg/insn_trans/trans_vec.c.inc @@ -5126,7 +5126,7 @@ static bool do_vbsrl_v(DisasContext *ctx, arg_vv_i *a, uint32_t oprsz) { int i, ofs; - if (!check_vec(ctx, 32)) { + if (!check_vec(ctx, oprsz)) { return true; }