| /linux/arch/loongarch/net/ |
| H A D | bpf_jit.h | 238 enum loongarch_gpr rd, int jmp_offset) in cond_jmp_offset() argument 243 emit_insn(ctx, beq, rj, rd, jmp_offset); in cond_jmp_offset() 248 emit_insn(ctx, bne, rj, rd, jmp_offset); in cond_jmp_offset() 252 emit_insn(ctx, bltu, rd, rj, jmp_offset); in cond_jmp_offset() 256 emit_insn(ctx, bltu, rj, rd, jmp_offset); in cond_jmp_offset() 260 emit_insn(ctx, bgeu, rj, rd, jmp_offset); in cond_jmp_offset() 264 emit_insn(ctx, bgeu, rd, rj, jmp_offset); in cond_jmp_offset() 268 emit_insn(ctx, blt, rd, rj, jmp_offset); in cond_jmp_offset() 272 emit_insn(ctx, blt, rj, rd, jmp_offset); in cond_jmp_offset() 276 emit_insn(ctx, bge, rj, rd, jmp_offset); in cond_jmp_offset() [all …]
|
| H A D | bpf_jit.c | 290 #define jmp_offset (tc_ninsn - (cur_offset)) in emit_bpf_tail_call() macro 306 if (emit_tailcall_jmp(ctx, BPF_JGE, a2, t1, jmp_offset) < 0) in emit_bpf_tail_call() 318 if (emit_tailcall_jmp(ctx, BPF_JSGT, t3, t2, jmp_offset) < 0) in emit_bpf_tail_call() 330 if (emit_tailcall_jmp(ctx, BPF_JEQ, t2, LOONGARCH_GPR_ZERO, jmp_offset) < 0) in emit_bpf_tail_call() 344 #undef jmp_offset in emit_bpf_tail_call() 546 int ret, jmp_offset, tcc_ptr_off; in build_insn() local 901 jmp_offset = bpf2la_offset(i, off, ctx); in build_insn() 911 if (emit_cond_jmp(ctx, cond, t1, t2, jmp_offset) < 0) in build_insn() 936 jmp_offset = bpf2la_offset(i, off, ctx); in build_insn() 952 if (emit_cond_jmp(ctx, cond, t2, tm, jmp_offset) < 0) in build_insn() [all …]
|
| /linux/arch/x86/net/ |
| H A D | bpf_jit_comp32.c | 1579 s64 jmp_offset; in emit_kfunc_call() local 1631 jmp_offset = (u8 *)__bpf_call_base + insn->imm - end_addr; in emit_kfunc_call() 1632 if (!is_simm32(jmp_offset)) { in emit_kfunc_call() 1634 jmp_offset); in emit_kfunc_call() 1638 EMIT1_off32(0xE8, jmp_offset); in emit_kfunc_call() 1681 s64 jmp_offset; in do_jit() local 2107 jmp_offset = func - (image + addrs[i]); in do_jit() 2109 if (!imm32 || !is_simm32(jmp_offset)) { in do_jit() 2127 EMIT1_off32(0xE8, jmp_offset + 9); in do_jit() 2365 jmp_offset = addrs[i + insn->off] - addrs[i]; in do_jit() [all …]
|
| H A D | bpf_jit_comp.c | 1732 s64 jmp_offset; in do_jit() local 2614 jmp_offset = addrs[i + insn->off] - addrs[i]; in do_jit() 2615 if (is_imm8_jmp_offset(jmp_offset)) { in do_jit() 2640 EMIT2(jmp_cond, jmp_offset); in do_jit() 2641 } else if (is_simm32(jmp_offset)) { in do_jit() 2642 EMIT2_off32(0x0F, jmp_cond + 0x10, jmp_offset); in do_jit() 2644 pr_err("cond_jmp gen bug %llx\n", jmp_offset); in do_jit() 2663 jmp_offset = -2; in do_jit() 2665 jmp_offset = addrs[i + insn->off] - addrs[i]; in do_jit() 2668 jmp_offset = -2; in do_jit() [all …]
|
| /linux/arch/arm/net/ |
| H A D | bpf_jit_32.c | 1405 #define jmp_offset (out_offset - (cur_offset) - 2) in emit_bpf_tail_call() macro 1423 _emit(ARM_COND_CS, ARM_B(jmp_offset), ctx); in emit_bpf_tail_call() 1437 _emit(ARM_COND_CS, ARM_B(jmp_offset), ctx); in emit_bpf_tail_call() 1451 _emit(ARM_COND_EQ, ARM_B(jmp_offset), ctx); in emit_bpf_tail_call() 1471 #undef jmp_offset in emit_bpf_tail_call() 1602 s32 jmp_offset; in build_insn() local 1992 jmp_offset = bpf2a32_offset(i+off, i, ctx); in build_insn() 1996 _emit(ARM_COND_NE, ARM_B(jmp_offset), ctx); in build_insn() 1999 _emit(ARM_COND_EQ, ARM_B(jmp_offset), ctx); in build_insn() 2002 _emit(ARM_COND_HI, ARM_B(jmp_offset), ctx); in build_insn() [all …]
|
| /linux/arch/arm64/net/ |
| H A D | bpf_jit_comp.c | 859 s32 jmp_offset; in emit_ll_sc_atomic() local 885 jmp_offset = -3; in emit_ll_sc_atomic() 886 check_imm19(jmp_offset); in emit_ll_sc_atomic() 887 emit(A64_CBNZ(0, tmp3, jmp_offset), ctx); in emit_ll_sc_atomic() 906 jmp_offset = -3; in emit_ll_sc_atomic() 907 check_imm19(jmp_offset); in emit_ll_sc_atomic() 908 emit(A64_CBNZ(0, tmp3, jmp_offset), ctx); in emit_ll_sc_atomic() 915 jmp_offset = -2; in emit_ll_sc_atomic() 916 check_imm19(jmp_offset); in emit_ll_sc_atomic() 917 emit(A64_CBNZ(0, tmp3, jmp_offset), ctx); in emit_ll_sc_atomic() [all …]
|