From 6a1b9e050a488cb5b2e1217fd3a01e484c3d7bb7 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Thu, 11 Nov 2021 20:47:10 +0100 Subject: [DYNAREC] Changed Dynarec a bit to try stabilise program using many threads and a JIT (help RimWorld Linux, but not enough to be 100% stable) --- src/include/debug.h | 1 + src/include/dynablock.h | 2 +- src/include/dynarec_arm64.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src/include') diff --git a/src/include/debug.h b/src/include/debug.h index af433dd2..80288c96 100755 --- a/src/include/debug.h +++ b/src/include/debug.h @@ -13,6 +13,7 @@ extern int box64_dynarec_dump; extern int box64_dynarec_trace; extern int box64_dynarec_forced; extern uintptr_t box64_nodynarec_start, box64_nodynarec_end; +extern int box64_dynarec_bigblock; #ifdef ARM64 extern int arm64_asimd; extern int arm64_aes; diff --git a/src/include/dynablock.h b/src/include/dynablock.h index d6424c4f..b83262cc 100755 --- a/src/include/dynablock.h +++ b/src/include/dynablock.h @@ -9,7 +9,7 @@ typedef struct kh_dynablocks_s kh_dynablocks_t; uint32_t X31_hash_code(void* addr, int len); dynablocklist_t* NewDynablockList(uintptr_t text, int textsz, int direct); void FreeDynablockList(dynablocklist_t** dynablocks); -void FreeDynablock(dynablock_t* db); +void FreeDynablock(dynablock_t* db, int need_lock); void MarkDynablock(dynablock_t* db); //return 1 if Dynareblock is empty int FreeRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t size); diff --git a/src/include/dynarec_arm64.h b/src/include/dynarec_arm64.h index 1225153d..bc4cf3f6 100755 --- a/src/include/dynarec_arm64.h +++ b/src/include/dynarec_arm64.h @@ -4,6 +4,7 @@ typedef struct dynablock_s dynablock_t; typedef struct x64emu_s x64emu_t; +void CancelBlock64(); void* FillBlock64(dynablock_t* block, uintptr_t addr); #endif //__DYNAREC_ARM_H_ \ No newline at end of file -- cgit 1.4.1