From 685afa230291d64f350afbfdfa8fc82536d99f82 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 8 Jun 2025 14:16:45 +0200 Subject: [DYNAREC] Modified JumpTable slightly so 32bits and 48bits address space jmp can be done with only 2 and 3 memory fetch (todo: RV64 and LA64 handling of 48bits) --- src/include/custommem.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/include') diff --git a/src/include/custommem.h b/src/include/custommem.h index 4bfcc98a..d7b79296 100644 --- a/src/include/custommem.h +++ b/src/include/custommem.h @@ -47,13 +47,15 @@ void setJumpTableDefault64(void* addr); void setJumpTableDefaultRef64(void* addr, void* jmp); int isJumpTableDefault64(void* addr); uintptr_t getJumpTable64(void); +uintptr_t getJumpTable48(void); uintptr_t getJumpTable32(void); uintptr_t getJumpTableAddress64(uintptr_t addr); uintptr_t getJumpAddress64(uintptr_t addr); #ifdef SAVE_MEM +#define JMPTABL_SHIFTMAX JMPTABL_SHIFT4 #define JMPTABL_SHIFT4 16 -#define JMPTABL_SHIFT3 14 +#define JMPTABL_SHIFT3 16 #define JMPTABL_SHIFT2 12 #define JMPTABL_SHIFT1 12 #define JMPTABL_SHIFT0 10 @@ -68,10 +70,11 @@ uintptr_t getJumpAddress64(uintptr_t addr); #define JMPTABLE_MASK1 ((1<