diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-03-08 20:30:52 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-03-08 20:30:52 +0100 |
| commit | 61a605a2dc381917c29b09812ff93613cc862709 (patch) | |
| tree | 564745feef769a8b1cd359dc00ed2d3552436d5c /src | |
| parent | 7a058c919480e67b94b4b84a1860871399c8db51 (diff) | |
| download | box64-61a605a2dc381917c29b09812ff93613cc862709.tar.gz box64-61a605a2dc381917c29b09812ff93613cc862709.zip | |
[ARM64_DYNAREC] Disabled inlined ClearCache as it seems not 100% efficient
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/dynarec_native.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c index 6f4eb595..fdbeab47 100644 --- a/src/dynarec/dynarec_native.c +++ b/src/dynarec/dynarec_native.c @@ -508,7 +508,8 @@ static instruction_native_t static_insts[MAX_INSTS+2] = {0}; void ClearCache(void* start, size_t len) { -#if defined(ARM64) +// disabled for now, seems to not clear some page correctly (happens with Celeste64 or CivBE for example) +#if 0//defined(ARM64) // manually clear cache, I have issue with regular function on Ampere with kernel 6.12.4 uintptr_t xstart = (uintptr_t)start; uintptr_t xend = (uintptr_t)start + len; @@ -831,6 +832,7 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit *(dynablock_t**)next = block; *(void**)(next+3*sizeof(void*)) = native_next; CreateJmpNext(block->jmpnext, next+3*sizeof(void*)); + ClearCache(block->jmpnext, 4*sizeof(void*)); //block->x64_addr = (void*)start; block->x64_size = end-start; // all done... |