diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-09-17 18:02:55 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-17 12:02:55 +0200 |
| commit | 24c15e148df707ecc43ae554d3fa0424846fd340 (patch) | |
| tree | f4b6f2c4af91d93c0d2e85a00920cc7fc0bea962 | |
| parent | ea48f2b823b253fd4ed61925d5b3ac9ac2d2955e (diff) | |
| download | box64-24c15e148df707ecc43ae554d3fa0424846fd340.tar.gz box64-24c15e148df707ecc43ae554d3fa0424846fd340.zip | |
[LA64_DYNAREC] Fixed avx infra (#3023)
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_helper.c | 4 |
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; } |