Lines Matching refs:emit

130 static inline void emit(u32 inst, struct jit_ctx *ctx)  in emit()  function
179 emit(ARM_MOV_R(ARM_IP, ARM_SP), ctx); in build_prologue()
180 emit(ARM_PUSH(reg_set), ctx); in build_prologue()
181 emit(ARM_SUB_I(ARM_FP, ARM_IP, 4), ctx); in build_prologue()
184 emit(ARM_PUSH(reg_set), ctx); in build_prologue()
188 emit(ARM_MOV_R(r_skb, ARM_R0), ctx); in build_prologue()
192 emit(ARM_LDR_I(r_skb_data, r_skb, off), ctx); in build_prologue()
195 emit(ARM_LDR_I(r_skb_hl, r_skb, off), ctx); in build_prologue()
197 emit(ARM_LDR_I(r_scratch, r_skb, off), ctx); in build_prologue()
198 emit(ARM_SUB_R(r_skb_hl, r_skb_hl, r_scratch), ctx); in build_prologue()
202 emit(ARM_MOV_I(r_X, 0), ctx); in build_prologue()
206 emit(ARM_MOV_I(r_A, 0), ctx); in build_prologue()
210 emit(ARM_SUB_I(ARM_SP, ARM_SP, mem_words_used(ctx) * 4), ctx); in build_prologue()
218 emit(ARM_ADD_I(ARM_SP, ARM_SP, mem_words_used(ctx) * 4), ctx); in build_epilogue()
226 emit(ARM_LDM(ARM_SP, reg_set), ctx); in build_epilogue()
231 emit(ARM_POP(reg_set), ctx); in build_epilogue()
235 emit(ARM_BX(ARM_LR), ctx); in build_epilogue()
303 emit(ARM_LDR_I(rd, ARM_PC, imm_offset(val, ctx)), ctx); in emit_mov_i_no8m()
305 emit(ARM_MOVW(rd, val & 0xffff), ctx); in emit_mov_i_no8m()
307 emit(ARM_MOVT(rd, val >> 16), ctx); in emit_mov_i_no8m()
316 emit(ARM_MOV_I(rd, imm12), ctx); in emit_mov_i()
345 emit(ARM_LSL_I(ARM_R1, r_src, 8), ctx); in emit_swap16()
346 emit(ARM_ORR_S(r_dst, ARM_R1, r_src, SRTYPE_LSR, 8), ctx); in emit_swap16()
354 emit(ARM_BIC_I(r_dst, r_dst, 0x8ff), ctx); in emit_swap16()
380 emit(ARM_REV16(r_dst, r_src), ctx); in emit_swap16()
408 emit(op ## _R((r1), (r2), r_scratch), ctx); \
410 emit(op ## _I((r1), (r2), imm12), ctx); \
419 emit(ARM_MOV_R(ARM_R0, ARM_R0), ctx); in emit_err_ret()
429 emit(ARM_MOV_R(ARM_LR, ARM_PC), ctx); in emit_blx_r()
432 emit(ARM_BX(tgt_reg), ctx); in emit_blx_r()
434 emit(ARM_MOV_R(ARM_PC, tgt_reg), ctx); in emit_blx_r()
436 emit(ARM_BLX_R(tgt_reg), ctx); in emit_blx_r()
444 emit(ARM_UDIV(rd, rm, rn), ctx); in emit_udiv()
460 emit(ARM_MOV_R(ARM_R1, rn), ctx); in emit_udiv()
462 emit(ARM_MOV_R(ARM_R0, rm), ctx); in emit_udiv()
469 emit(ARM_MOV_R(rd, ARM_R0), ctx); in emit_udiv()
508 emit(ARM_LDR_I(r_A, r_skb, in build_body()
514 emit(ARM_LDR_I(r_A, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
533 emit(ARM_SUB_I(r_scratch, r_skb_hl, in build_body()
535 emit(ARM_CMP_R(r_scratch, r_off), ctx); in build_body()
538 emit(ARM_CMP_R(r_skb_hl, r_off), ctx); in build_body()
557 emit(ARM_MOV_R(ARM_R0, r_skb), ctx); in build_body()
561 emit(ARM_CMP_I(ARM_R1, 0), ctx); in build_body()
563 emit(ARM_MOV_R(r_A, ARM_R0), ctx); in build_body()
582 emit(ARM_LDR_I(r_X, r_skb, in build_body()
587 emit(ARM_LDR_I(r_X, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
597 emit(ARM_CMP_R(r_skb_hl, r_off), ctx); in build_body()
608 emit(ARM_MOV_R(ARM_R0, r_skb), ctx); in build_body()
613 emit(ARM_CMP_I(ARM_R1, 0), ctx); in build_body()
616 emit(ARM_AND_I(r_X, ARM_R0, 0x00f), ctx); in build_body()
617 emit(ARM_LSL_I(r_X, r_X, 2), ctx); in build_body()
621 emit(ARM_STR_I(r_A, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
626 emit(ARM_STR_I(r_X, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
634 emit(ARM_ADD_R(r_A, r_A, r_X), ctx); in build_body()
642 emit(ARM_SUB_R(r_A, r_A, r_X), ctx); in build_body()
647 emit(ARM_MUL(r_A, r_A, r_scratch), ctx); in build_body()
651 emit(ARM_MUL(r_A, r_A, r_X), ctx); in build_body()
661 emit(ARM_CMP_I(r_X, 0), ctx); in build_body()
671 emit(ARM_ORR_R(r_A, r_A, r_X), ctx); in build_body()
681 emit(ARM_EOR_R(r_A, r_A, r_X), ctx); in build_body()
689 emit(ARM_AND_R(r_A, r_A, r_X), ctx); in build_body()
694 emit(ARM_LSL_I(r_A, r_A, k), ctx); in build_body()
698 emit(ARM_LSL_R(r_A, r_A, r_X), ctx); in build_body()
703 emit(ARM_LSR_I(r_A, r_A, k), ctx); in build_body()
707 emit(ARM_LSR_R(r_A, r_A, r_X), ctx); in build_body()
711 emit(ARM_RSB_I(r_A, r_A, 0), ctx); in build_body()
715 emit(ARM_B(b_imm(i + k + 1, ctx)), ctx); in build_body()
732 emit(ARM_CMP_R(r_A, r_scratch), ctx); in build_body()
734 emit(ARM_CMP_I(r_A, imm12), ctx); in build_body()
757 emit(ARM_CMP_R(r_A, r_X), ctx); in build_body()
767 emit(ARM_TST_R(r_A, r_scratch), ctx); in build_body()
769 emit(ARM_TST_I(r_A, imm12), ctx); in build_body()
776 emit(ARM_TST_R(r_A, r_X), ctx); in build_body()
779 emit(ARM_MOV_R(ARM_R0, r_A), ctx); in build_body()
787 emit(ARM_B(b_imm(prog->len, ctx)), ctx); in build_body()
792 emit(ARM_MOV_R(r_X, r_A), ctx); in build_body()
797 emit(ARM_MOV_R(r_A, r_X), ctx); in build_body()
805 emit(ARM_LDRH_I(r_scratch, r_skb, off), ctx); in build_body()
814 emit(ARM_LDR_I(r_A, r_scratch, off), ctx); in build_body()
820 emit(ARM_LDR_I(r_scratch, r_skb, off), ctx); in build_body()
822 emit(ARM_CMP_I(r_scratch, 0), ctx); in build_body()
828 emit(ARM_LDR_I(r_A, r_scratch, off), ctx); in build_body()
834 emit(ARM_LDR_I(r_A, r_skb, off), ctx); in build_body()
840 emit(ARM_LDR_I(r_A, r_skb, off), ctx); in build_body()
847 emit(ARM_LDRH_I(r_A, r_skb, off), ctx); in build_body()
860 emit(ARM_LDRH_I(r_A, r_skb, off), ctx); in build_body()