Lines Matching refs:emit

155 static inline void emit(u32 inst, struct jit_ctx *ctx)  in emit()  function
204 emit(ARM_MOV_R(ARM_IP, ARM_SP), ctx); in build_prologue()
205 emit(ARM_PUSH(reg_set), ctx); in build_prologue()
206 emit(ARM_SUB_I(ARM_FP, ARM_IP, 4), ctx); in build_prologue()
209 emit(ARM_PUSH(reg_set), ctx); in build_prologue()
213 emit(ARM_MOV_R(r_skb, ARM_R0), ctx); in build_prologue()
217 emit(ARM_LDR_I(r_skb_data, r_skb, off), ctx); in build_prologue()
220 emit(ARM_LDR_I(r_skb_hl, r_skb, off), ctx); in build_prologue()
222 emit(ARM_LDR_I(r_scratch, r_skb, off), ctx); in build_prologue()
223 emit(ARM_SUB_R(r_skb_hl, r_skb_hl, r_scratch), ctx); in build_prologue()
227 emit(ARM_MOV_I(r_X, 0), ctx); in build_prologue()
231 emit(ARM_MOV_I(r_A, 0), ctx); in build_prologue()
235 emit(ARM_SUB_I(ARM_SP, ARM_SP, mem_words_used(ctx) * 4), ctx); in build_prologue()
243 emit(ARM_ADD_I(ARM_SP, ARM_SP, mem_words_used(ctx) * 4), ctx); in build_epilogue()
251 emit(ARM_LDM(ARM_SP, reg_set), ctx); in build_epilogue()
256 emit(ARM_POP(reg_set), ctx); in build_epilogue()
260 emit(ARM_BX(ARM_LR), ctx); in build_epilogue()
328 emit(ARM_LDR_I(rd, ARM_PC, imm_offset(val, ctx)), ctx); in emit_mov_i_no8m()
330 emit(ARM_MOVW(rd, val & 0xffff), ctx); in emit_mov_i_no8m()
332 emit(ARM_MOVT(rd, val >> 16), ctx); in emit_mov_i_no8m()
341 emit(ARM_MOV_I(rd, imm12), ctx); in emit_mov_i()
370 emit(ARM_LSL_I(ARM_R1, r_src, 8), ctx); in emit_swap16()
371 emit(ARM_ORR_S(r_dst, ARM_R1, r_src, SRTYPE_LSR, 8), ctx); in emit_swap16()
379 emit(ARM_BIC_I(r_dst, r_dst, 0x8ff), ctx); in emit_swap16()
405 emit(ARM_REV16(r_dst, r_src), ctx); in emit_swap16()
433 emit(op ## _R((r1), (r2), r_scratch), ctx); \
435 emit(op ## _I((r1), (r2), imm12), ctx); \
444 emit(ARM_MOV_R(ARM_R0, ARM_R0), ctx); in emit_err_ret()
454 emit(ARM_MOV_R(ARM_LR, ARM_PC), ctx); in emit_blx_r()
457 emit(ARM_BX(tgt_reg), ctx); in emit_blx_r()
459 emit(ARM_MOV_R(ARM_PC, tgt_reg), ctx); in emit_blx_r()
461 emit(ARM_BLX_R(tgt_reg), ctx); in emit_blx_r()
471 emit(ARM_UDIV(rd, rm, rn), ctx); in emit_udivmod()
473 emit(ARM_UDIV(ARM_R3, rm, rn), ctx); in emit_udivmod()
474 emit(ARM_MLS(rd, rn, ARM_R3, rm), ctx); in emit_udivmod()
491 emit(ARM_MOV_R(ARM_R1, rn), ctx); in emit_udivmod()
493 emit(ARM_MOV_R(ARM_R0, rm), ctx); in emit_udivmod()
501 emit(ARM_MOV_R(rd, ARM_R0), ctx); in emit_udivmod()
540 emit(ARM_LDR_I(r_A, r_skb, in build_body()
546 emit(ARM_LDR_I(r_A, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
562 emit(ARM_SUB_I(r_scratch, r_skb_hl, in build_body()
564 emit(ARM_CMP_R(r_scratch, r_off), ctx); in build_body()
567 emit(ARM_CMP_R(r_skb_hl, r_off), ctx); in build_body()
598 emit(ARM_MOV_R(ARM_R0, r_skb), ctx); in build_body()
602 emit(ARM_CMP_I(ARM_R1, 0), ctx); in build_body()
604 emit(ARM_MOV_R(r_A, ARM_R0), ctx); in build_body()
624 emit(ARM_LDR_I(r_X, r_skb, in build_body()
629 emit(ARM_LDR_I(r_X, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
639 emit(ARM_CMP_R(r_skb_hl, r_off), ctx); in build_body()
650 emit(ARM_MOV_R(ARM_R0, r_skb), ctx); in build_body()
655 emit(ARM_CMP_I(ARM_R1, 0), ctx); in build_body()
658 emit(ARM_AND_I(r_X, ARM_R0, 0x00f), ctx); in build_body()
659 emit(ARM_LSL_I(r_X, r_X, 2), ctx); in build_body()
663 emit(ARM_STR_I(r_A, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
668 emit(ARM_STR_I(r_X, ARM_SP, SCRATCH_OFF(k)), ctx); in build_body()
676 emit(ARM_ADD_R(r_A, r_A, r_X), ctx); in build_body()
684 emit(ARM_SUB_R(r_A, r_A, r_X), ctx); in build_body()
689 emit(ARM_MUL(r_A, r_A, r_scratch), ctx); in build_body()
693 emit(ARM_MUL(r_A, r_A, r_X), ctx); in build_body()
703 emit(ARM_CMP_I(r_X, 0), ctx); in build_body()
717 emit(ARM_CMP_I(r_X, 0), ctx); in build_body()
727 emit(ARM_ORR_R(r_A, r_A, r_X), ctx); in build_body()
737 emit(ARM_EOR_R(r_A, r_A, r_X), ctx); in build_body()
745 emit(ARM_AND_R(r_A, r_A, r_X), ctx); in build_body()
750 emit(ARM_LSL_I(r_A, r_A, k), ctx); in build_body()
754 emit(ARM_LSL_R(r_A, r_A, r_X), ctx); in build_body()
760 emit(ARM_LSR_I(r_A, r_A, k), ctx); in build_body()
764 emit(ARM_LSR_R(r_A, r_A, r_X), ctx); in build_body()
768 emit(ARM_RSB_I(r_A, r_A, 0), ctx); in build_body()
772 emit(ARM_B(b_imm(i + k + 1, ctx)), ctx); in build_body()
789 emit(ARM_CMP_R(r_A, r_scratch), ctx); in build_body()
791 emit(ARM_CMP_I(r_A, imm12), ctx); in build_body()
814 emit(ARM_CMP_R(r_A, r_X), ctx); in build_body()
824 emit(ARM_TST_R(r_A, r_scratch), ctx); in build_body()
826 emit(ARM_TST_I(r_A, imm12), ctx); in build_body()
833 emit(ARM_TST_R(r_A, r_X), ctx); in build_body()
836 emit(ARM_MOV_R(ARM_R0, r_A), ctx); in build_body()
844 emit(ARM_B(b_imm(prog->len, ctx)), ctx); in build_body()
849 emit(ARM_MOV_R(r_X, r_A), ctx); in build_body()
854 emit(ARM_MOV_R(r_A, r_X), ctx); in build_body()
862 emit(ARM_LDRH_I(r_scratch, r_skb, off), ctx); in build_body()
871 emit(ARM_LDR_I(r_A, r_scratch, off), ctx); in build_body()
879 emit(ARM_LDR_I(r_scratch, r_skb, off), ctx); in build_body()
881 emit(ARM_CMP_I(r_scratch, 0), ctx); in build_body()
891 emit(ARM_LDR_I(r_A, r_scratch, off), ctx); in build_body()
902 emit(ARM_LDRH_R(r_A, r_scratch, ARM_R3), ctx); in build_body()
909 emit(ARM_LDR_I(r_A, r_skb, off), ctx); in build_body()
915 emit(ARM_LDR_I(r_A, r_skb, off), ctx); in build_body()
922 emit(ARM_LDRH_I(r_A, r_skb, off), ctx); in build_body()
935 emit(ARM_LDRB_I(r_A, r_skb, off), ctx); in build_body()
936 emit(ARM_AND_I(r_A, r_A, PKT_TYPE_MAX), ctx); in build_body()
938 emit(ARM_LSR_I(r_A, r_A, 5), ctx); in build_body()
948 emit(ARM_LDRH_I(r_A, r_skb, off), ctx); in build_body()
953 emit(ARM_MOV_R(ARM_R0, r_skb), ctx); in build_body()
956 emit(ARM_MOV_R(r_A, ARM_R0), ctx); in build_body()
966 emit(ARM_LDR_I(r_A, r_skb, k), ctx); in build_body()