/kernel/linux/linux-6.6/arch/powerpc/net/ |
H A D | bpf_jit_comp32.c | 36 #define PPC_EX32(r, i) EMIT(PPC_RAW_LI((r), (i) < 0 ? -1 : 0)) 132 EMIT(PPC_RAW_LI(_R4, 0)); in bpf_jit_build_prologue() 134 EMIT(PPC_RAW_NOP()); in bpf_jit_build_prologue() 139 EMIT(PPC_RAW_STWU(_R1, _R1, -BPF_PPC_STACKFRAME(ctx))); in bpf_jit_build_prologue() 142 EMIT(PPC_RAW_STW(_R4, _R1, bpf_jit_stack_offsetof(ctx, BPF_PPC_TC))); in bpf_jit_build_prologue() 145 EMIT(PPC_RAW_MR(bpf_to_ppc(BPF_REG_1), _R3)); in bpf_jit_build_prologue() 146 EMIT(PPC_RAW_LI(bpf_to_ppc(BPF_REG_1) - 1, 0)); in bpf_jit_build_prologue() 153 EMIT(PPC_RAW_MFLR(_R0)); in bpf_jit_build_prologue() 160 EMIT(PPC_RAW_STW(i, _R1, bpf_jit_stack_offsetof(ctx, i))); in bpf_jit_build_prologue() 164 EMIT(PPC_RAW_L in bpf_jit_build_prologue() [all...] |
H A D | bpf_jit_comp64.c | 131 EMIT(PPC_RAW_LD(_R2, _R13, offsetof(struct paca_struct, kernel_toc))); in bpf_jit_build_prologue() 140 EMIT(PPC_RAW_LI(bpf_to_ppc(TMP_REG_1), 0)); in bpf_jit_build_prologue() 142 EMIT(PPC_RAW_STD(bpf_to_ppc(TMP_REG_1), _R1, -(BPF_PPC_STACK_SAVE + 8))); in bpf_jit_build_prologue() 144 EMIT(PPC_RAW_NOP()); in bpf_jit_build_prologue() 145 EMIT(PPC_RAW_NOP()); in bpf_jit_build_prologue() 154 EMIT(PPC_RAW_MFLR(_R0)); in bpf_jit_build_prologue() 155 EMIT(PPC_RAW_STD(_R0, _R1, PPC_LR_STKOFF)); in bpf_jit_build_prologue() 158 EMIT(PPC_RAW_STDU(_R1, _R1, -(BPF_PPC_STACKFRAME + ctx->stack_size))); in bpf_jit_build_prologue() 168 EMIT(PPC_RAW_STD(bpf_to_ppc(i), _R1, bpf_jit_stack_offsetof(ctx, bpf_to_ppc(i)))); in bpf_jit_build_prologue() 172 EMIT(PPC_RAW_ADD in bpf_jit_build_prologue() [all...] |
H A D | bpf_jit.h | 26 #define EMIT(instr) PLANT_INSTR(image, ctx->idx, instr) macro 36 EMIT(PPC_RAW_BRANCH(offset)); \ 40 #define PPC_BL(dest) EMIT(PPC_RAW_BL((dest) - (unsigned long)(image + ctx->idx))) 50 EMIT(PPC_INST_BRANCH_COND | (((cond) & 0x3ff) << 16) | (offset & 0xfffc)); \ 57 EMIT(PPC_RAW_LI(d, i)); \ 59 EMIT(PPC_RAW_LIS(d, IMM_H(i))); \ 61 EMIT(PPC_RAW_ORI(d, d, IMM_L(i))); \ 71 EMIT(PPC_RAW_LI(d, ((uintptr_t)(i) >> 32) & \ 74 EMIT(PPC_RAW_LIS(d, ((uintptr_t)(i) >> 48))); \ 76 EMIT(PPC_RAW_OR [all...] |
/kernel/linux/linux-5.10/arch/powerpc/net/ |
H A D | bpf_jit_comp64.c | 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_MTL in bpf_jit_emit_func_call_hlp() [all...] |
H A D | bpf_jit_comp.c | 34 EMIT(PPC_INST_MFLR | __PPC_RT(R0)); in bpf_jit_build_prologue() 64 EMIT(PPC_RAW_SUB(r_HL, r_HL, r_scratch1)); in bpf_jit_build_prologue() 73 EMIT(PPC_RAW_LI(r_X, 0)); in bpf_jit_build_prologue() 78 EMIT(PPC_RAW_LI(r_A, 0)); in bpf_jit_build_prologue() 86 EMIT(PPC_RAW_ADDI(1, 1, BPF_PPC_STACKFRAME)); in bpf_jit_build_epilogue() 89 EMIT(PPC_RAW_MTLR(0)); in bpf_jit_build_epilogue() 103 EMIT(PPC_RAW_BLR()); in bpf_jit_build_epilogue() 137 EMIT(PPC_RAW_ADD(r_A, r_A, r_X)); in bpf_jit_build_body() 142 EMIT(PPC_RAW_ADDI(r_A, r_A, IMM_L(K))); in bpf_jit_build_body() 144 EMIT(PPC_RAW_ADDI in bpf_jit_build_body() [all...] |
H A D | bpf_jit32.h | 75 #define PPC_LBZ_OFFS(r, base, i) do { if ((i) < 32768) EMIT(PPC_RAW_LBZ(r, base, i)); \ 76 else { EMIT(PPC_RAW_ADDIS(r, base, IMM_HA(i))); \ 77 EMIT(PPC_RAW_LBZ(r, r, IMM_L(i))); } } while(0) 79 #define PPC_LD_OFFS(r, base, i) do { if ((i) < 32768) EMIT(PPC_RAW_LD(r, base, i)); \ 80 else { EMIT(PPC_RAW_ADDIS(r, base, IMM_HA(i))); \ 81 EMIT(PPC_RAW_LD(r, r, IMM_L(i))); } } while(0) 83 #define PPC_LWZ_OFFS(r, base, i) do { if ((i) < 32768) EMIT(PPC_RAW_LWZ(r, base, i)); \ 84 else { EMIT(PPC_RAW_ADDIS(r, base, IMM_HA(i))); \ 85 EMIT(PPC_RAW_LWZ(r, r, IMM_L(i))); } } while(0) 87 #define PPC_LHZ_OFFS(r, base, i) do { if ((i) < 32768) EMIT(PPC_RAW_LH [all...] |
H A D | bpf_jit.h | 25 #define EMIT(instr) PLANT_INSTR(image, ctx->idx, instr) macro 35 EMIT(PPC_INST_BRANCH | (offset & 0x03fffffc)); \ 45 EMIT(PPC_INST_BRANCH_COND | (((cond) & 0x3ff) << 16) | (offset & 0xfffc)); \ 52 EMIT(PPC_RAW_LI(d, i)); \ 54 EMIT(PPC_RAW_LIS(d, IMM_H(i))); \ 56 EMIT(PPC_RAW_ORI(d, d, IMM_L(i))); \ 65 EMIT(PPC_RAW_LI(d, ((uintptr_t)(i) >> 32) & \ 68 EMIT(PPC_RAW_LIS(d, ((uintptr_t)(i) >> 48))); \ 70 EMIT(PPC_RAW_ORI(d, d, \ 73 EMIT(PPC_RAW_SLD [all...] |
H A D | bpf_jit64.h | 73 EMIT(PPC_RAW_LI(b2p[TMP_REG_2], (i)));\ 74 EMIT(PPC_RAW_LDX(r, base, \ 77 EMIT(PPC_RAW_LD(r, base, i)); \ 81 EMIT(PPC_RAW_LI(b2p[TMP_REG_2], (i)));\ 82 EMIT(PPC_RAW_STDX(r, base, \ 85 EMIT(PPC_RAW_STD(r, base, i)); \ 87 #define PPC_BPF_STLU(r, base, i) do { EMIT(PPC_RAW_STDU(r, base, i)); } while(0)
|
/kernel/linux/linux-5.10/arch/x86/net/ |
H A D | bpf_jit_comp32.c | 64 #define EMIT(bytes, len) \ macro 67 #define EMIT1(b1) EMIT(b1, 1) 68 #define EMIT2(b1, b2) EMIT((b1) + ((b2) << 8), 2) 69 #define EMIT3(b1, b2, b3) EMIT((b1) + ((b2) << 8) + ((b3) << 16), 3) 71 EMIT((b1) + ((b2) << 8) + ((b3) << 16) + ((b4) << 24), 4) 74 do { EMIT1(b1); EMIT(off, 4); } while (0) 76 do { EMIT2(b1, b2); EMIT(off, 4); } while (0) 78 do { EMIT3(b1, b2, b3); EMIT(off, 4); } while (0) 80 do { EMIT4(b1, b2, b3, b4); EMIT(off, 4); } while (0) 1745 EMIT( in do_jit() [all...] |
H A D | bpf_jit_comp.c | 32 #define EMIT(bytes, len) \ macro 35 #define EMIT1(b1) EMIT(b1, 1) 36 #define EMIT2(b1, b2) EMIT((b1) + ((b2) << 8), 2) 37 #define EMIT3(b1, b2, b3) EMIT((b1) + ((b2) << 8) + ((b3) << 16), 3) 38 #define EMIT4(b1, b2, b3, b4) EMIT((b1) + ((b2) << 8) + ((b3) << 16) + ((b4) << 24), 4) 41 do { EMIT1(b1); EMIT(off, 4); } while (0) 43 do { EMIT2(b1, b2); EMIT(off, 4); } while (0) 45 do { EMIT3(b1, b2, b3); EMIT(off, 4); } while (0) 47 do { EMIT4(b1, b2, b3, b4); EMIT(off, 4); } while (0) 653 EMIT(imm32_l in emit_mov_imm64() [all...] |
/kernel/linux/linux-6.6/arch/x86/net/ |
H A D | bpf_jit_comp32.c | 64 #define EMIT(bytes, len) \ macro 67 #define EMIT1(b1) EMIT(b1, 1) 68 #define EMIT2(b1, b2) EMIT((b1) + ((b2) << 8), 2) 69 #define EMIT3(b1, b2, b3) EMIT((b1) + ((b2) << 8) + ((b3) << 16), 3) 71 EMIT((b1) + ((b2) << 8) + ((b3) << 16) + ((b4) << 24), 4) 74 do { EMIT1(b1); EMIT(off, 4); } while (0) 76 do { EMIT2(b1, b2); EMIT(off, 4); } while (0) 78 do { EMIT3(b1, b2, b3); EMIT(off, 4); } while (0) 80 do { EMIT4(b1, b2, b3, b4); EMIT(off, 4); } while (0) 1926 EMIT( in do_jit() [all...] |
H A D | bpf_jit_comp.c | 33 #define EMIT(bytes, len) \ macro 36 #define EMIT1(b1) EMIT(b1, 1) 37 #define EMIT2(b1, b2) EMIT((b1) + ((b2) << 8), 2) 38 #define EMIT3(b1, b2, b3) EMIT((b1) + ((b2) << 8) + ((b3) << 16), 3) 39 #define EMIT4(b1, b2, b3, b4) EMIT((b1) + ((b2) << 8) + ((b3) << 16) + ((b4) << 24), 4) 42 do { EMIT1(b1); EMIT(off, 4); } while (0) 44 do { EMIT2(b1, b2); EMIT(off, 4); } while (0) 46 do { EMIT3(b1, b2, b3); EMIT(off, 4); } while (0) 48 do { EMIT4(b1, b2, b3, b4); EMIT(off, 4); } while (0) 51 #define EMIT_ENDBR() EMIT(gen_endb [all...] |