about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-08-27 10:57:51 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-08-27 10:57:51 +0200
commit99f2207fd4c64d00e30d29aeade5929e8f907928 (patch)
treeed90ad479c6e051ff9bb60cb69937b1d005dc700 /src
parent50623f32f642abe103d9ec7f46bd46c8c99b4ec6 (diff)
downloadbox64-99f2207fd4c64d00e30d29aeade5929e8f907928.tar.gz
box64-99f2207fd4c64d00e30d29aeade5929e8f907928.zip
[ARM64_DYNAREC] Mark new upper YMM part as new, so the can be unwind too (for #1759)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_functions.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_functions.c b/src/dynarec/arm64/dynarec_arm64_functions.c
index ee1104e9..8a17365f 100644
--- a/src/dynarec/arm64/dynarec_arm64_functions.c
+++ b/src/dynarec/arm64/dynarec_arm64_functions.c
@@ -143,6 +143,7 @@ int internal_mark_ymm(dynarec_arm_t* dyn, int t, int ymm, int reg)
         // found a slot!
         dyn->n.neoncache[reg].t=t;
         dyn->n.neoncache[reg].n=ymm;
+        dyn->n.news |= (1<<reg);
         return reg;
     }
     return -1;
@@ -493,7 +494,7 @@ void neoncacheUnwind(neoncache_t* cache)
     }
     if(cache->news) {
         // remove the newly created neoncache
-        for(int i=0; i<24; ++i)
+        for(int i=0; i<32; ++i)
             if(cache->news&(1<<i))
                 cache->neoncache[i].v = 0;
         cache->news = 0;