tcg/loongarch64: Enable v256 with LASX
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 27 May 2024 20:53:48 +0000 (20:53 +0000)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 19 Jun 2024 19:47:08 +0000 (12:47 -0700)
Reviewed-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/loongarch64/tcg-target.c.inc
tcg/loongarch64/tcg-target.h

index dff966c395b04ab17d4b157f791cae7d4b2a5830..1c4dc4decb3beda1e8f046b7c7eecb61899f63d0 100644 (file)
@@ -2487,6 +2487,9 @@ static void tcg_target_init(TCGContext *s)
     if (cpuinfo & CPUINFO_LSX) {
         tcg_target_available_regs[TCG_TYPE_V64] = ALL_VECTOR_REGS;
         tcg_target_available_regs[TCG_TYPE_V128] = ALL_VECTOR_REGS;
+        if (cpuinfo & CPUINFO_LASX) {
+            tcg_target_available_regs[TCG_TYPE_V256] = ALL_VECTOR_REGS;
+        }
         tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_V24);
         tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_V25);
         tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_V26);
index 990bad1d511be8461b31279a9aa3c490b0c69598..58bd7d258e7f3502a04587cb623280d05b76416c 100644 (file)
@@ -173,7 +173,7 @@ typedef enum {
 
 #define TCG_TARGET_HAS_v64              (cpuinfo & CPUINFO_LSX)
 #define TCG_TARGET_HAS_v128             (cpuinfo & CPUINFO_LSX)
-#define TCG_TARGET_HAS_v256             0
+#define TCG_TARGET_HAS_v256             (cpuinfo & CPUINFO_LASX)
 
 #define TCG_TARGET_HAS_not_vec          1
 #define TCG_TARGET_HAS_neg_vec          1