]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
target/loongarch: Guard BCEQZ/BCNEZ instructions with FP feature
authorWANG Rui <wangrui@loongson.cn>
Fri, 18 Apr 2025 08:21:02 +0000 (16:21 +0800)
committerSong Gao <gaosong@loongson.cn>
Thu, 24 Apr 2025 02:46:31 +0000 (10:46 +0800)
The BCEQZ and BCNEZ instructions depend on access to condition codes
from floating-point comparisons. Previously, these instructions were
unconditionally enabled for 64-bit targets.

This patch updates their translation to be gated under the `FP` feature
flag instead, ensuring they are only available when the floating-point
unit is present.

This improves correctness for CPUs lacking floating-point support.

Signed-off-by: WANG Rui <wangrui@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
Message-Id: <20250418082103.447780-3-wangrui@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
target/loongarch/tcg/insn_trans/trans_branch.c.inc

index 221e5159dba080817a3e5f74b3652be4e2e359ab..f94c1f37ab1a4e9b6030241ac2e546a5bb258f56 100644 (file)
@@ -80,5 +80,5 @@ TRANS(bltu, ALL, gen_rr_bc, TCG_COND_LTU)
 TRANS(bgeu, ALL, gen_rr_bc, TCG_COND_GEU)
 TRANS(beqz, ALL, gen_rz_bc, TCG_COND_EQ)
 TRANS(bnez, ALL, gen_rz_bc, TCG_COND_NE)
-TRANS(bceqz, 64, gen_cz_bc, TCG_COND_EQ)
-TRANS(bcnez, 64, gen_cz_bc, TCG_COND_NE)
+TRANS(bceqz, FP, gen_cz_bc, TCG_COND_EQ)
+TRANS(bcnez, FP, gen_cz_bc, TCG_COND_NE)