drc: debug improvements

This commit is contained in:
notaz 2013-07-21 01:56:45 +03:00
parent bf092a3631
commit 6d7979571d
6 changed files with 126 additions and 36 deletions

View file

@ -639,6 +639,21 @@ static int emith_xbranch(int cond, void *target, int is_call)
EOP_MOV_REG_ASR(d,d,32 - (bits)); \
}
#define emith_do_caller_regs(mask, func) { \
u32 _reg_mask = (mask) & 0x500f; \
if (_reg_mask) { \
if (__builtin_parity(_reg_mask) == 1) \
_reg_mask |= 0x10; /* eabi align */ \
func(_reg_mask); \
} \
}
#define emith_save_caller_regs(mask) \
emith_do_caller_regs(mask, EOP_STMFD_SP)
#define emith_restore_caller_regs(mask) \
emith_do_caller_regs(mask, EOP_LDMFD_SP)
// upto 4 args
#define emith_pass_arg_r(arg, reg) \
EOP_MOV_REG_SIMPLE(arg, reg)