diff options
author | Damien George <damien.p.george@gmail.com> | 2018-10-13 15:03:29 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-10-13 15:16:33 +1100 |
commit | 5f1dd5b86bac0c857e9615fdd19bf2c0565b18f2 (patch) | |
tree | 5c5bc7f883da9503ee0b35d7faff979567f970aa /py/asmarm.h | |
parent | 006671056da6627073f041b4d451cab9db031ff0 (diff) |
py/asmarm: Simplify asm_arm_bl_ind to only load via index, not literal.
The maximum index into mp_fun_table is currently less than 1024 and should
stay that way to keep things efficient for all architectures, so there is
no need to handle loading the pointer directly via a literal in this
function.
Diffstat (limited to 'py/asmarm.h')
-rw-r--r-- | py/asmarm.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/py/asmarm.h b/py/asmarm.h index 3ee633c22..219f88c53 100644 --- a/py/asmarm.h +++ b/py/asmarm.h @@ -121,7 +121,7 @@ void asm_arm_pop(asm_arm_t *as, uint reglist); // control flow void asm_arm_bcc_label(asm_arm_t *as, int cond, uint label); void asm_arm_b_label(asm_arm_t *as, uint label); -void asm_arm_bl_ind(asm_arm_t *as, void *fun_ptr, uint fun_id, uint reg_temp); +void asm_arm_bl_ind(asm_arm_t *as, uint fun_id, uint reg_temp); void asm_arm_bx_reg(asm_arm_t *as, uint reg_src); // Holds a pointer to mp_fun_table @@ -174,7 +174,7 @@ void asm_arm_bx_reg(asm_arm_t *as, uint reg_src); asm_arm_bcc_label(as, ASM_ARM_CC_EQ, label); \ } while (0) #define ASM_JUMP_REG(as, reg) asm_arm_bx_reg((as), (reg)) -#define ASM_CALL_IND(as, ptr, idx) asm_arm_bl_ind(as, ptr, idx, ASM_ARM_REG_R3) +#define ASM_CALL_IND(as, ptr, idx) asm_arm_bl_ind(as, idx, ASM_ARM_REG_R3) #define ASM_MOV_LOCAL_REG(as, local_num, reg_src) asm_arm_mov_local_reg((as), (local_num), (reg_src)) #define ASM_MOV_REG_IMM(as, reg_dest, imm) asm_arm_mov_reg_i32((as), (reg_dest), (imm)) |