mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-06 15:48:05 -04:00
32x: drc: block linking
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@853 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
25eb407c56
commit
44e6452e02
4 changed files with 256 additions and 125 deletions
|
@ -625,16 +625,19 @@ static int emith_xbranch(int cond, void *target, int is_call)
|
|||
#define emith_jump(target) \
|
||||
emith_jump_cond(A_COND_AL, target)
|
||||
|
||||
#define emith_jump_patchable(target) \
|
||||
emith_jump(target)
|
||||
|
||||
#define emith_jump_cond(cond, target) \
|
||||
emith_xbranch(cond, target, 0)
|
||||
|
||||
#define emith_jump_patchable(cond) \
|
||||
emith_jump_cond(cond, 0)
|
||||
#define emith_jump_cond_patchable(cond, target) \
|
||||
emith_jump_cond(cond, target)
|
||||
|
||||
#define emith_jump_patch(ptr, target) do { \
|
||||
u32 *ptr_ = ptr; \
|
||||
u32 val = (u32 *)(target) - (u32 *)ptr_ - 2; \
|
||||
*ptr_ = (*ptr_ & 0xff000000) | (val & 0x00ffffff); \
|
||||
u32 val_ = (u32 *)(target) - ptr_ - 2; \
|
||||
*ptr_ = (*ptr_ & 0xff000000) | (val_ & 0x00ffffff); \
|
||||
} while (0)
|
||||
|
||||
#define emith_jump_reg_c(cond, r) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue