sh2 drc, fix bug in jump patching for arm64

This commit is contained in:
kub 2022-10-06 19:39:18 +00:00
parent e2a5b098e0
commit f338a562e9
2 changed files with 4 additions and 2 deletions

View file

@ -1188,8 +1188,9 @@ static inline void emith_pool_adjust(int tcache_offs, int move_offs)
#define emith_jump_patch_size() 4 #define emith_jump_patch_size() 4
#define emith_jump_at(ptr, target) do { \ #define emith_jump_at(ptr, target) do { \
u32 *ptr_ = (u32 *)ptr; \
u32 val_ = (u32 *)(target) - (u32 *)(ptr) - 2; \ u32 val_ = (u32 *)(target) - (u32 *)(ptr) - 2; \
EOP_C_B_PTR(ptr, A_COND_AL, 0, val_ & 0xffffff); \ EOP_C_B_PTR(ptr_, A_COND_AL, 0, val_ & 0xffffff); \
} while (0) } while (0)
#define emith_jump_at_size() 4 #define emith_jump_at_size() 4

View file

@ -1106,8 +1106,9 @@ static void emith_ldst_offs(int sz, int rd, int rn, int o9, int ld, int mode)
#define emith_jump_patch_size() 4 #define emith_jump_patch_size() 4
#define emith_jump_at(ptr, target) do { \ #define emith_jump_at(ptr, target) do { \
u32 *ptr_ = (u32 *)ptr; \
u32 disp_ = (u8 *)target - (u8 *)ptr; \ u32 disp_ = (u8 *)target - (u8 *)ptr; \
EMIT_PTR(ptr, A64_B(disp_ & 0x0fffffff)); \ EMIT_PTR(ptr_, A64_B(disp_ & 0x0fffffff)); \
} while (0) } while (0)
#define emith_jump_at_size() 4 #define emith_jump_at_size() 4