diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2024-08-15 16:17:27 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-15 10:17:27 +0200 |
| commit | 8c7d96ad6388ed9e2fff8e3acf665df41f559de0 (patch) | |
| tree | 6978899af16fce9bdb0b21ac277b68aea81786e1 /src/dynarec | |
| parent | bd23e1f7fc8e175125b2a60b9e4de6821cc402ad (diff) | |
| download | box64-8c7d96ad6388ed9e2fff8e3acf665df41f559de0.tar.gz box64-8c7d96ad6388ed9e2fff8e3acf665df41f559de0.zip | |
[RV64_DYNAREC] Fixed extcacheUnwind regression (#1734)
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_functions.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_functions.c b/src/dynarec/rv64/dynarec_rv64_functions.c index b3aedaa8..c5a3a071 100644 --- a/src/dynarec/rv64/dynarec_rv64_functions.c +++ b/src/dynarec/rv64/dynarec_rv64_functions.c @@ -420,14 +420,12 @@ void extcacheUnwind(extcache_t* cache) cache->news = 0; } // add/change bad regs - for(int i=0; i<16; ++i) { - if (cache->extcache[i].t == EXT_CACHE_SS || cache->extcache[i].t == EXT_CACHE_SD) { - if (cache->olds[i].changed) { - cache->extcache[i].t = cache->olds[i].single ? EXT_CACHE_SS : EXT_CACHE_SD; - } else if (cache->olds[i].purged) { - cache->extcache[i].n = i; - cache->extcache[i].t = cache->olds[i].single ? EXT_CACHE_SS : EXT_CACHE_SD; - } + for (int i = 0; i < 16; ++i) { + if (cache->olds[i].changed) { + cache->extcache[i].t = cache->olds[i].single ? EXT_CACHE_SS : EXT_CACHE_SD; + } else if (cache->olds[i].purged) { + cache->extcache[i].n = i; + cache->extcache[i].t = cache->olds[i].single ? EXT_CACHE_SS : EXT_CACHE_SD; } } |