diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-08-27 10:57:51 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-08-27 10:57:51 +0200 |
| commit | 99f2207fd4c64d00e30d29aeade5929e8f907928 (patch) | |
| tree | ed90ad479c6e051ff9bb60cb69937b1d005dc700 /src | |
| parent | 50623f32f642abe103d9ec7f46bd46c8c99b4ec6 (diff) | |
| download | box64-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.c | 3 |
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; |