diff options
| author | rajdakin <rajdakin@gmail.com> | 2023-12-31 15:49:57 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-31 15:49:57 +0100 |
| commit | 5e9e1faedc97194e46f3fb4b3665ec416ce7efbf (patch) | |
| tree | 27d345328502d82ede6c58e3d181d1f682bab255 /src/dynarec/dynarec_native.c | |
| parent | dba6a88341bacbf52d0f0c37117a04164afce9fa (diff) | |
| download | box64-5e9e1faedc97194e46f3fb4b3665ec416ce7efbf.tar.gz box64-5e9e1faedc97194e46f3fb4b3665ec416ce7efbf.zip | |
[MEMORY] Switched from a sparse array to a red-black tree (#1180)
* [MEMORY] Switched from a sparse array to an RB tree * [RBTREE] Fixed the Android build
Diffstat (limited to 'src/dynarec/dynarec_native.c')
| -rw-r--r-- | src/dynarec/dynarec_native.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c index 94898c27..6dfc9c89 100644 --- a/src/dynarec/dynarec_native.c +++ b/src/dynarec/dynarec_native.c @@ -463,10 +463,6 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit B+32 .. B+32+sz : instsize (compressed array with each instruction length on x64 and native side) */ - if(IsInHotPage(addr)) { - dynarec_log(LOG_DEBUG, "Canceling dynarec FillBlock on hotpage for %p\n", (void*)addr); - return NULL; - } if(addr>=box64_nodynarec_start && addr<box64_nodynarec_end) { dynarec_log(LOG_INFO, "Create empty block in no-dynarec zone\n"); return CreateEmptyBlock(block, addr); @@ -495,7 +491,6 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit } if(!isprotectedDB(addr, 1)) { dynarec_log(LOG_INFO, "Warning, write on current page on pass0, aborting dynablock creation (%p)\n", (void*)addr); - AddHotPage(addr); CancelBlock64(0); return NULL; } @@ -634,7 +629,6 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit // Check if something changed, to abort if it is if((block->hash != hash)) { dynarec_log(LOG_DEBUG, "Warning, a block changed while being processed hash(%p:%ld)=%x/%x\n", block->x64_addr, block->x64_size, block->hash, hash); - AddHotPage(addr); CancelBlock64(0); return NULL; } @@ -658,7 +652,6 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit } if(!isprotectedDB(addr, end-addr)) { dynarec_log(LOG_DEBUG, "Warning, block unprotected while being processed %p:%ld, marking as need_test\n", block->x64_addr, block->x64_size); - AddHotPage(addr); block->dirty = 1; //protectDB(addr, end-addr); } |