Lines Matching full:emit
99 EMIT(PPC_RAW_LI(b2p[TMP_REG_1], 0)); in bpf_jit_build_prologue()
103 EMIT(PPC_RAW_NOP()); in bpf_jit_build_prologue()
104 EMIT(PPC_RAW_NOP()); in bpf_jit_build_prologue()
115 EMIT(PPC_INST_MFLR | __PPC_RT(R0)); in bpf_jit_build_prologue()
133 EMIT(PPC_RAW_ADDI(b2p[BPF_REG_FP], 1, in bpf_jit_build_prologue()
148 EMIT(PPC_RAW_ADDI(1, 1, BPF_PPC_STACKFRAME + ctx->stack_size)); in bpf_jit_emit_common_epilogue()
151 EMIT(PPC_RAW_MTLR(0)); in bpf_jit_emit_common_epilogue()
161 EMIT(PPC_RAW_MR(3, b2p[BPF_REG_0])); in bpf_jit_build_epilogue()
163 EMIT(PPC_RAW_BLR()); in bpf_jit_build_epilogue()
175 EMIT(PPC_RAW_MTLR(b2p[TMP_REG_1])); in bpf_jit_emit_func_call_hlp()
186 EMIT(PPC_RAW_MTLR(12)); in bpf_jit_emit_func_call_hlp()
188 EMIT(PPC_RAW_BLRL()); in bpf_jit_emit_func_call_hlp()
207 * that PPC_LI64() can emit. in bpf_jit_emit_func_call_rel()
210 EMIT(PPC_RAW_NOP()); in bpf_jit_emit_func_call_rel()
224 EMIT(PPC_RAW_MTLR(12)); in bpf_jit_emit_func_call_rel()
225 EMIT(PPC_RAW_BLRL()); in bpf_jit_emit_func_call_rel()
243 EMIT(PPC_RAW_LWZ(b2p[TMP_REG_1], b2p_bpf_array, offsetof(struct bpf_array, map.max_entries))); in bpf_jit_emit_tail_call()
244 EMIT(PPC_RAW_RLWINM(b2p_index, b2p_index, 0, 0, 31)); in bpf_jit_emit_tail_call()
245 EMIT(PPC_RAW_CMPLW(b2p_index, b2p[TMP_REG_1])); in bpf_jit_emit_tail_call()
253 EMIT(PPC_RAW_CMPLWI(b2p[TMP_REG_1], MAX_TAIL_CALL_CNT)); in bpf_jit_emit_tail_call()
259 EMIT(PPC_RAW_ADDI(b2p[TMP_REG_1], b2p[TMP_REG_1], 1)); in bpf_jit_emit_tail_call()
263 EMIT(PPC_RAW_MULI(b2p[TMP_REG_1], b2p_index, 8)); in bpf_jit_emit_tail_call()
264 EMIT(PPC_RAW_ADD(b2p[TMP_REG_1], b2p[TMP_REG_1], b2p_bpf_array)); in bpf_jit_emit_tail_call()
271 EMIT(PPC_RAW_CMPLDI(b2p[TMP_REG_1], 0)); in bpf_jit_emit_tail_call()
278 EMIT(PPC_RAW_ADDI(b2p[TMP_REG_1], b2p[TMP_REG_1], in bpf_jit_emit_tail_call()
281 EMIT(PPC_RAW_ADDI(b2p[TMP_REG_1], b2p[TMP_REG_1], BPF_TAILCALL_PROLOGUE_SIZE)); in bpf_jit_emit_tail_call()
283 EMIT(PPC_RAW_MTCTR(b2p[TMP_REG_1])); in bpf_jit_emit_tail_call()
288 EMIT(PPC_RAW_BCTR()); in bpf_jit_emit_tail_call()
369 EMIT(PPC_RAW_ADD(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
373 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
380 EMIT(PPC_RAW_ADDI(dst_reg, dst_reg, IMM_L(imm))); in bpf_jit_build_body()
383 EMIT(PPC_RAW_ADD(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
391 EMIT(PPC_RAW_ADDI(dst_reg, dst_reg, IMM_L(-imm))); in bpf_jit_build_body()
394 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
400 EMIT(PPC_RAW_MULW(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
402 EMIT(PPC_RAW_MULD(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
407 EMIT(PPC_RAW_MULI(dst_reg, dst_reg, IMM_L(imm))); in bpf_jit_build_body()
411 EMIT(PPC_RAW_MULW(dst_reg, dst_reg, in bpf_jit_build_body()
414 EMIT(PPC_RAW_MULD(dst_reg, dst_reg, in bpf_jit_build_body()
421 EMIT(PPC_RAW_DIVWU(b2p[TMP_REG_1], dst_reg, src_reg)); in bpf_jit_build_body()
422 EMIT(PPC_RAW_MULW(b2p[TMP_REG_1], src_reg, in bpf_jit_build_body()
424 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
426 EMIT(PPC_RAW_DIVWU(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
431 EMIT(PPC_RAW_DIVDU(b2p[TMP_REG_1], dst_reg, src_reg)); in bpf_jit_build_body()
432 EMIT(PPC_RAW_MULD(b2p[TMP_REG_1], src_reg, in bpf_jit_build_body()
434 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
436 EMIT(PPC_RAW_DIVDU(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
448 EMIT(PPC_RAW_LI(dst_reg, 0)); in bpf_jit_build_body()
457 EMIT(PPC_RAW_DIVWU(b2p[TMP_REG_2], in bpf_jit_build_body()
460 EMIT(PPC_RAW_MULW(b2p[TMP_REG_1], in bpf_jit_build_body()
463 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, in bpf_jit_build_body()
466 EMIT(PPC_RAW_DIVWU(dst_reg, dst_reg, in bpf_jit_build_body()
471 EMIT(PPC_RAW_DIVDU(b2p[TMP_REG_2], in bpf_jit_build_body()
474 EMIT(PPC_RAW_MULD(b2p[TMP_REG_1], in bpf_jit_build_body()
477 EMIT(PPC_RAW_SUB(dst_reg, dst_reg, in bpf_jit_build_body()
480 EMIT(PPC_RAW_DIVDU(dst_reg, dst_reg, in bpf_jit_build_body()
487 EMIT(PPC_RAW_NEG(dst_reg, dst_reg)); in bpf_jit_build_body()
495 EMIT(PPC_RAW_AND(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
500 EMIT(PPC_RAW_ANDI(dst_reg, dst_reg, IMM_L(imm))); in bpf_jit_build_body()
504 EMIT(PPC_RAW_AND(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
509 EMIT(PPC_RAW_OR(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
516 EMIT(PPC_RAW_OR(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
519 EMIT(PPC_RAW_ORI(dst_reg, dst_reg, IMM_L(imm))); in bpf_jit_build_body()
521 EMIT(PPC_RAW_ORIS(dst_reg, dst_reg, IMM_H(imm))); in bpf_jit_build_body()
526 EMIT(PPC_RAW_XOR(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
533 EMIT(PPC_RAW_XOR(dst_reg, dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
536 EMIT(PPC_RAW_XORI(dst_reg, dst_reg, IMM_L(imm))); in bpf_jit_build_body()
538 EMIT(PPC_RAW_XORIS(dst_reg, dst_reg, IMM_H(imm))); in bpf_jit_build_body()
543 EMIT(PPC_RAW_SLW(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
549 EMIT(PPC_RAW_SLD(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
553 EMIT(PPC_RAW_SLWI(dst_reg, dst_reg, imm)); in bpf_jit_build_body()
559 EMIT(PPC_RAW_SLDI(dst_reg, dst_reg, imm)); in bpf_jit_build_body()
562 EMIT(PPC_RAW_SRW(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
567 EMIT(PPC_RAW_SRD(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
570 EMIT(PPC_RAW_SRWI(dst_reg, dst_reg, imm)); in bpf_jit_build_body()
576 EMIT(PPC_RAW_SRDI(dst_reg, dst_reg, imm)); in bpf_jit_build_body()
579 EMIT(PPC_RAW_SRAW(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
582 EMIT(PPC_RAW_SRAD(dst_reg, dst_reg, src_reg)); in bpf_jit_build_body()
585 EMIT(PPC_RAW_SRAWI(dst_reg, dst_reg, imm)); in bpf_jit_build_body()
589 EMIT(PPC_RAW_SRADI(dst_reg, dst_reg, imm)); in bpf_jit_build_body()
599 EMIT(PPC_RAW_RLWINM(dst_reg, dst_reg, 0, 0, 31)); in bpf_jit_build_body()
602 EMIT(PPC_RAW_MR(dst_reg, src_reg)); in bpf_jit_build_body()
616 EMIT(PPC_RAW_RLWINM(dst_reg, dst_reg, 0, 0, 31)); in bpf_jit_build_body()
634 EMIT(PPC_RAW_RLWINM(b2p[TMP_REG_1], dst_reg, 8, 16, 23)); in bpf_jit_build_body()
636 EMIT(PPC_RAW_RLWIMI(b2p[TMP_REG_1], dst_reg, 24, 24, 31)); in bpf_jit_build_body()
638 EMIT(PPC_RAW_MR(dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
646 EMIT(PPC_RAW_RLWINM(b2p[TMP_REG_1], dst_reg, 8, 0, 31)); in bpf_jit_build_body()
648 EMIT(PPC_RAW_RLWIMI(b2p[TMP_REG_1], dst_reg, 24, 0, 7)); in bpf_jit_build_body()
650 EMIT(PPC_RAW_RLWIMI(b2p[TMP_REG_1], dst_reg, 24, 16, 23)); in bpf_jit_build_body()
651 EMIT(PPC_RAW_MR(dst_reg, b2p[TMP_REG_1])); in bpf_jit_build_body()
656 EMIT(PPC_RAW_ADDI(b2p[TMP_REG_1], 1, bpf_jit_stack_local(ctx))); in bpf_jit_build_body()
658 EMIT(PPC_RAW_LDBRX(dst_reg, 0, b2p[TMP_REG_1])); in bpf_jit_build_body()
660 EMIT(PPC_RAW_LWBRX(dst_reg, 0, b2p[TMP_REG_1])); in bpf_jit_build_body()
662 EMIT(PPC_RAW_SLDI(dst_reg, dst_reg, 32)); in bpf_jit_build_body()
663 EMIT(PPC_RAW_LI(b2p[TMP_REG_2], 4)); in bpf_jit_build_body()
664 EMIT(PPC_RAW_LWBRX(b2p[TMP_REG_2], b2p[TMP_REG_2], b2p[TMP_REG_1])); in bpf_jit_build_body()
666 EMIT(PPC_RAW_SLDI(b2p[TMP_REG_2], b2p[TMP_REG_2], 32)); in bpf_jit_build_body()
667 EMIT(PPC_RAW_OR(dst_reg, dst_reg, b2p[TMP_REG_2])); in bpf_jit_build_body()
677 EMIT(PPC_RAW_RLDICL(dst_reg, dst_reg, 0, 48)); in bpf_jit_build_body()
684 EMIT(PPC_RAW_RLDICL(dst_reg, dst_reg, 0, 32)); in bpf_jit_build_body()
703 EMIT(0x7c0006ac | 0x02000000); in bpf_jit_build_body()
706 EMIT(PPC_INST_SYNC); in bpf_jit_build_body()
707 EMIT(PPC_RAW_LD(b2p[TMP_REG_1], 13, 0)); in bpf_jit_build_body()
708 EMIT(PPC_RAW_ORI(31, 31, 0)); in bpf_jit_build_body()
711 EMIT(PPC_INST_MFLR | ___PPC_RT(b2p[TMP_REG_1])); in bpf_jit_build_body()
713 EMIT(PPC_RAW_MTCTR(12)); in bpf_jit_build_body()
714 EMIT(PPC_INST_BCTR | 0x1); in bpf_jit_build_body()
715 EMIT(PPC_RAW_MTLR(b2p[TMP_REG_1])); in bpf_jit_build_body()
728 EMIT(PPC_RAW_LI(b2p[TMP_REG_1], imm)); in bpf_jit_build_body()
731 EMIT(PPC_RAW_STB(src_reg, dst_reg, off)); in bpf_jit_build_body()
736 EMIT(PPC_RAW_LI(b2p[TMP_REG_1], imm)); in bpf_jit_build_body()
739 EMIT(PPC_RAW_STH(src_reg, dst_reg, off)); in bpf_jit_build_body()
747 EMIT(PPC_RAW_STW(src_reg, dst_reg, off)); in bpf_jit_build_body()
764 EMIT(PPC_RAW_ADDI(b2p[TMP_REG_1], dst_reg, off)); in bpf_jit_build_body()
767 EMIT(PPC_RAW_LWARX(b2p[TMP_REG_2], 0, b2p[TMP_REG_1], 0)); in bpf_jit_build_body()
769 EMIT(PPC_RAW_ADD(b2p[TMP_REG_2], b2p[TMP_REG_2], src_reg)); in bpf_jit_build_body()
771 EMIT(PPC_RAW_STWCX(b2p[TMP_REG_2], 0, b2p[TMP_REG_1])); in bpf_jit_build_body()
777 EMIT(PPC_RAW_ADDI(b2p[TMP_REG_1], dst_reg, off)); in bpf_jit_build_body()
779 EMIT(PPC_RAW_LDARX(b2p[TMP_REG_2], 0, b2p[TMP_REG_1], 0)); in bpf_jit_build_body()
780 EMIT(PPC_RAW_ADD(b2p[TMP_REG_2], b2p[TMP_REG_2], src_reg)); in bpf_jit_build_body()
781 EMIT(PPC_RAW_STDCX(b2p[TMP_REG_2], 0, b2p[TMP_REG_1])); in bpf_jit_build_body()
790 EMIT(PPC_RAW_LBZ(dst_reg, src_reg, off)); in bpf_jit_build_body()
796 EMIT(PPC_RAW_LHZ(dst_reg, src_reg, off)); in bpf_jit_build_body()
802 EMIT(PPC_RAW_LWZ(dst_reg, src_reg, off)); in bpf_jit_build_body()
853 EMIT(PPC_RAW_MR(b2p[BPF_REG_0], 3)); in bpf_jit_build_body()
938 EMIT(PPC_RAW_CMPLW(dst_reg, src_reg)); in bpf_jit_build_body()
940 EMIT(PPC_RAW_CMPLD(dst_reg, src_reg)); in bpf_jit_build_body()
952 EMIT(PPC_RAW_CMPW(dst_reg, src_reg)); in bpf_jit_build_body()
954 EMIT(PPC_RAW_CMPD(dst_reg, src_reg)); in bpf_jit_build_body()
959 EMIT(PPC_RAW_AND_DOT(b2p[TMP_REG_1], dst_reg, in bpf_jit_build_body()
964 EMIT(PPC_RAW_AND(tmp_reg, dst_reg, src_reg)); in bpf_jit_build_body()
965 EMIT(PPC_RAW_RLWINM_DOT(tmp_reg, tmp_reg, 0, 0, in bpf_jit_build_body()
990 EMIT(PPC_RAW_CMPLWI(dst_reg, imm)); in bpf_jit_build_body()
992 EMIT(PPC_RAW_CMPLDI(dst_reg, imm)); in bpf_jit_build_body()
998 EMIT(PPC_RAW_CMPLW(dst_reg, in bpf_jit_build_body()
1001 EMIT(PPC_RAW_CMPLD(dst_reg, in bpf_jit_build_body()
1023 EMIT(PPC_RAW_CMPWI(dst_reg, imm)); in bpf_jit_build_body()
1025 EMIT(PPC_RAW_CMPDI(dst_reg, imm)); in bpf_jit_build_body()
1029 EMIT(PPC_RAW_CMPW(dst_reg, in bpf_jit_build_body()
1032 EMIT(PPC_RAW_CMPD(dst_reg, in bpf_jit_build_body()
1042 EMIT(PPC_RAW_ANDI(b2p[TMP_REG_1], dst_reg, imm)); in bpf_jit_build_body()
1048 EMIT(PPC_RAW_AND_DOT(tmp_reg, dst_reg, in bpf_jit_build_body()
1051 EMIT(PPC_RAW_AND(tmp_reg, dst_reg, in bpf_jit_build_body()
1053 EMIT(PPC_RAW_RLWINM_DOT(tmp_reg, tmp_reg, in bpf_jit_build_body()