about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-09-17 18:02:55 +0800
committerGitHub <noreply@github.com>2025-09-17 12:02:55 +0200
commit24c15e148df707ecc43ae554d3fa0424846fd340 (patch)
treef4b6f2c4af91d93c0d2e85a00920cc7fc0bea962
parentea48f2b823b253fd4ed61925d5b3ac9ac2d2955e (diff)
downloadbox64-24c15e148df707ecc43ae554d3fa0424846fd340.tar.gz
box64-24c15e148df707ecc43ae554d3fa0424846fd340.zip
[LA64_DYNAREC] Fixed avx infra (#3023)
-rw-r--r--src/dynarec/la64/dynarec_la64_helper.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/la64/dynarec_la64_helper.c b/src/dynarec/la64/dynarec_la64_helper.c
index 27a39ed2..049803ce 100644
--- a/src/dynarec/la64/dynarec_la64_helper.c
+++ b/src/dynarec/la64/dynarec_la64_helper.c
@@ -1039,6 +1039,7 @@ int avx_get_reg(dynarec_la64_t* dyn, int ninst, int s1, int a, int forwrite, int
     }
 
     // new reg
+    dyn->lsx.avxcache[a].v = 0;
     dyn->lsx.avxcache[a].reg = fpu_get_reg_ymm(dyn, forwrite ? LSX_CACHE_YMMW : LSX_CACHE_YMMR, a);
     int ret = dyn->lsx.avxcache[a].reg;
     dyn->lsx.avxcache[a].write = forwrite;
@@ -1075,6 +1076,7 @@ int avx_get_reg_empty(dynarec_la64_t* dyn, int ninst, int s1, int a, int width)
         fpu_free_reg(dyn, dyn->lsx.ssecache[a].reg);
         dyn->lsx.ssecache[a].v = -1;
     }
+    dyn->lsx.avxcache[a].v = 0;
     dyn->lsx.avxcache[a].reg = fpu_get_reg_ymm(dyn, LSX_CACHE_YMMW, a);
     dyn->lsx.avxcache[a].write = 1;
     dyn->lsx.avxcache[a].width = width;
@@ -1098,7 +1100,6 @@ void avx_reflect_reg_upper128(dynarec_la64_t* dyn, int ninst, int a, int forwrit
         }
         VST(SCRATCH, xEmu, offsetof(x64emu_t, ymm[a]));
     }
-    dyn->lsx.avxcache[a].zero_upper = 0;
     dyn->lsx.avxcache[a].v = -1;
     return;
 }
@@ -1117,7 +1118,6 @@ void avx_forget_reg(dynarec_la64_t* dyn, int ninst, int a)
         VST(SCRATCH, xEmu, offsetof(x64emu_t, ymm[a]));
     }
     fpu_free_reg(dyn, dyn->lsx.avxcache[a].reg);
-    dyn->lsx.avxcache[a].zero_upper = 0;
     dyn->lsx.avxcache[a].v = -1;
     return;
 }