Lines Matching refs:word_offset

393 #define OP_STR_TO_SP_OFFSET(rlo_dest, word_offset) (0x9000 | ((rlo_dest) << 8) | ((word_offset) & 0…  argument
394 #define OP_LDR_FROM_SP_OFFSET(rlo_dest, word_offset) (0x9800 | ((rlo_dest) << 8) | ((word_offset) &… argument
396 static void asm_thumb_mov_local_check(asm_thumb_t *as, int word_offset) { in asm_thumb_mov_local_check() argument
398 assert(word_offset >= 0); in asm_thumb_mov_local_check()
399 if (!UNSIGNED_FIT8(word_offset)) { in asm_thumb_mov_local_check()
407 int word_offset = local_num; in asm_thumb_mov_local_reg() local
408 asm_thumb_mov_local_check(as, word_offset); in asm_thumb_mov_local_reg()
409 asm_thumb_op16(as, OP_STR_TO_SP_OFFSET(rlo_src, word_offset)); in asm_thumb_mov_local_reg()
414 int word_offset = local_num; in asm_thumb_mov_reg_local() local
415 asm_thumb_mov_local_check(as, word_offset); in asm_thumb_mov_reg_local()
416 asm_thumb_op16(as, OP_LDR_FROM_SP_OFFSET(rlo_dest, word_offset)); in asm_thumb_mov_reg_local()
419 #define OP_ADD_REG_SP_OFFSET(rlo_dest, word_offset) (0xa800 | ((rlo_dest) << 8) | ((word_offset) & … argument
423 int word_offset = local_num; in asm_thumb_mov_reg_local_addr() local
424 assert(as->base.pass < MP_ASM_PASS_EMIT || word_offset >= 0); in asm_thumb_mov_reg_local_addr()
425 asm_thumb_op16(as, OP_ADD_REG_SP_OFFSET(rlo_dest, word_offset)); in asm_thumb_mov_reg_local_addr()
446 …e void asm_thumb_ldr_reg_reg_i12(asm_thumb_t *as, uint reg_dest, uint reg_base, uint word_offset) { in asm_thumb_ldr_reg_reg_i12() argument
447 asm_thumb_op32(as, OP_LDR_W_HI(reg_base), OP_LDR_W_LO(reg_dest, word_offset * 4)); in asm_thumb_ldr_reg_reg_i12()
451 …_thumb_ldr_reg_reg_i12_optimised(asm_thumb_t *as, uint reg_dest, uint reg_base, uint word_offset) { in asm_thumb_ldr_reg_reg_i12_optimised() argument
452 if (reg_dest < ASM_THUMB_REG_R8 && reg_base < ASM_THUMB_REG_R8 && UNSIGNED_FIT5(word_offset)) { in asm_thumb_ldr_reg_reg_i12_optimised()
453 asm_thumb_ldr_rlo_rlo_i5(as, reg_dest, reg_base, word_offset); in asm_thumb_ldr_reg_reg_i12_optimised()
456 asm_thumb_ldr_reg_reg_i12(as, reg_dest, reg_base, word_offset); in asm_thumb_ldr_reg_reg_i12_optimised()
458 word_offset -= 31; in asm_thumb_ldr_reg_reg_i12_optimised()
460 if (UNSIGNED_FIT8(word_offset) && (word_offset < 64 || reg_dest != reg_base)) { in asm_thumb_ldr_reg_reg_i12_optimised()
461 if (word_offset < 64) { in asm_thumb_ldr_reg_reg_i12_optimised()
465 asm_thumb_add_rlo_i8(as, reg_dest, word_offset * 4); in asm_thumb_ldr_reg_reg_i12_optimised()
467 asm_thumb_mov_rlo_i8(as, reg_dest, word_offset); in asm_thumb_ldr_reg_reg_i12_optimised()
473 asm_thumb_mov_rlo_i16(as, reg_dest, word_offset * 4); in asm_thumb_ldr_reg_reg_i12_optimised()
478 asm_thumb_mov_rlo_i16(as, reg_other, word_offset * 4); in asm_thumb_ldr_reg_reg_i12_optimised()