Commit 59c8adc283 for qemu.org
commit 59c8adc2830342c2cff5fe8867191d0e166abb29
Author: Jiajie Chen <c@jia.je>
Date: Wed Nov 19 20:30:58 2025 +0800
target/loongarch: Add LA v1.1 instructions to max cpu
Add LA v1.1 new instructinos to max cpu by enabling new features in
CPUCFG2.
Signed-off-by: Jiajie Chen <c@jia.je>
Reviewed-by: Song Gao <gaosong@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index 4fa629cb14..54dbee2554 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -417,7 +417,16 @@ static void loongarch_max_initfn(Object *obj)
if (tcg_enabled()) {
cpu->env.cpucfg[1] = FIELD_DP32(cpu->env.cpucfg[1], CPUCFG1, MSG_INT, 1);
cpu->msgint = ON_OFF_AUTO_AUTO;
- cpu->env.cpucfg[2] = FIELD_DP32(cpu->env.cpucfg[2], CPUCFG2, HPTW, 1);
+
+ uint32_t data = cpu->env.cpucfg[2];
+ data = FIELD_DP32(data, CPUCFG2, HPTW, 1);
+ /* Enable LA v1.1 instructions */
+ data = FIELD_DP32(data, CPUCFG2, FRECIPE, 1);
+ data = FIELD_DP32(data, CPUCFG2, LAM_BH, 1);
+ data = FIELD_DP32(data, CPUCFG2, LAMCAS, 1);
+ data = FIELD_DP32(data, CPUCFG2, LLACQ_SCREL, 1);
+ data = FIELD_DP32(data, CPUCFG2, SCQ, 1);
+ cpu->env.cpucfg[2] = data;
}
}