/kernel/linux/linux-5.10/arch/mips/net/ |
H A D | bpf_jit.c | 89 * struct jit_ctx - JIT context 97 struct jit_ctx { struct 118 static inline void emit_jit_reg_move(ptr dst, ptr src, struct jit_ctx *ctx); 150 unsigned int src2, struct jit_ctx *ctx) in emit_addu() 155 static inline void emit_nop(struct jit_ctx *ctx) in emit_nop() 161 static inline void emit_load_imm(unsigned int dst, u32 imm, struct jit_ctx *ctx) in emit_load_imm() 182 unsigned int src2, struct jit_ctx *ctx) in emit_or() 188 struct jit_ctx *ctx) in emit_ori() 199 int imm, struct jit_ctx *ctx) in emit_daddiu() 209 u32 imm, struct jit_ctx *ct in emit_addiu() [all...] |
H A D | ebpf_jit.c | 91 * struct jit_ctx - JIT context 100 struct jit_ctx { struct 119 static enum reg_val_type get_reg_val_type(const struct jit_ctx *ctx, in get_reg_val_type() 141 static unsigned int j_target(struct jit_ctx *ctx, int target_idx) in j_target() 159 static u32 b_imm(unsigned int tgt, struct jit_ctx *ctx) in b_imm() 193 static int ebpf_to_mips_reg(struct jit_ctx *ctx, in ebpf_to_mips_reg() 270 static int gen_int_prologue(struct jit_ctx *ctx) in gen_int_prologue() 352 static int build_int_epilogue(struct jit_ctx *ctx, int dest_reg) in build_int_epilogue() 409 struct jit_ctx *ctx) in gen_imm_to_reg() 422 static int gen_imm_insn(const struct bpf_insn *insn, struct jit_ctx *ct [all...] |
/kernel/linux/linux-6.6/arch/loongarch/net/ |
H A D | bpf_jit.h | 13 struct jit_ctx { struct 27 struct jit_ctx ctx; 47 static inline int bpf2la_offset(int bpf_insn, int off, const struct jit_ctx *ctx) in bpf2la_offset() 59 static inline int epilogue_offset(const struct jit_ctx *ctx) in epilogue_offset() 68 static inline void emit_zext_32(struct jit_ctx *ctx, enum loongarch_gpr reg, bool is32) in emit_zext_32() 77 static inline void emit_sext_32(struct jit_ctx *ctx, enum loongarch_gpr reg, bool is32) in emit_sext_32() 85 static inline void move_addr(struct jit_ctx *ctx, enum loongarch_gpr rd, u64 addr) in move_addr() 106 static inline void move_imm(struct jit_ctx *ctx, enum loongarch_gpr rd, long imm, bool is32) in move_imm() 169 static inline void move_reg(struct jit_ctx *ctx, enum loongarch_gpr rd, in move_reg() 203 static inline void cond_jmp_offset(struct jit_ctx *ct [all...] |
H A D | bpf_jit.c | 35 static void mark_call(struct jit_ctx *ctx) in mark_call() 40 static void mark_tail_call(struct jit_ctx *ctx) in mark_tail_call() 45 static bool seen_call(struct jit_ctx *ctx) in seen_call() 50 static bool seen_tail_call(struct jit_ctx *ctx) in seen_tail_call() 55 static u8 tail_call_reg(struct jit_ctx *ctx) in tail_call_reg() 89 static void build_prologue(struct jit_ctx *ctx) in build_prologue() 149 static void __build_epilogue(struct jit_ctx *ctx, bool is_tail_call) in __build_epilogue() 194 static void build_epilogue(struct jit_ctx *ctx) in build_epilogue() 206 static int emit_bpf_tail_call(struct jit_ctx *ctx) in emit_bpf_tail_call() 277 static void emit_atomic(const struct bpf_insn *insn, struct jit_ctx *ct [all...] |
/kernel/linux/linux-5.10/arch/arm/net/ |
H A D | bpf_jit_32.c | 200 struct jit_ctx { struct 231 static inline void _emit(int cond, u32 inst, struct jit_ctx *ctx) in _emit() 245 static inline void emit(u32 inst, struct jit_ctx *ctx) in emit() 366 static u16 imm_offset(u32 k, struct jit_ctx *ctx) in imm_offset() 412 const struct jit_ctx *ctx) { in bpf2a32_offset() 426 static inline void emit_mov_i_no8m(const u8 rd, u32 val, struct jit_ctx *ctx) in emit_mov_i_no8m() 437 static inline void emit_mov_i(const u8 rd, u32 val, struct jit_ctx *ctx) in emit_mov_i() 447 static void emit_bx_r(u8 tgt_reg, struct jit_ctx *ctx) in emit_bx_r() 455 static inline void emit_blx_r(u8 tgt_reg, struct jit_ctx *ctx) in emit_blx_r() 465 static inline int epilogue_offset(const struct jit_ctx *ct [all...] |
/kernel/linux/linux-6.6/arch/arm/net/ |
H A D | bpf_jit_32.c | 200 struct jit_ctx { struct 231 static inline void _emit(int cond, u32 inst, struct jit_ctx *ctx) in _emit() 245 static inline void emit(u32 inst, struct jit_ctx *ctx) in emit() 366 static u16 imm_offset(u32 k, struct jit_ctx *ctx) in imm_offset() 412 const struct jit_ctx *ctx) { in bpf2a32_offset() 426 static inline void emit_mov_i_no8m(const u8 rd, u32 val, struct jit_ctx *ctx) in emit_mov_i_no8m() 437 static inline void emit_mov_i(const u8 rd, u32 val, struct jit_ctx *ctx) in emit_mov_i() 447 static void emit_bx_r(u8 tgt_reg, struct jit_ctx *ctx) in emit_bx_r() 455 static inline void emit_blx_r(u8 tgt_reg, struct jit_ctx *ctx) in emit_blx_r() 465 static inline int epilogue_offset(const struct jit_ctx *ct [all...] |
/kernel/linux/linux-6.6/arch/arm64/net/ |
H A D | bpf_jit_comp.c | 72 struct jit_ctx { struct 92 static inline void emit(const u32 insn, struct jit_ctx *ctx) in emit() 101 const s32 val, struct jit_ctx *ctx) in emit_a64_mov_i() 130 struct jit_ctx *ctx) in emit_a64_mov_i64() 154 static inline void emit_bti(u32 insn, struct jit_ctx *ctx) in emit_bti() 166 struct jit_ctx *ctx) in emit_addr_mov_i64() 179 static inline void emit_call(u64 target, struct jit_ctx *ctx) in emit_call() 188 const struct jit_ctx *ctx) in bpf2a64_offset() 208 static inline int epilogue_offset(const struct jit_ctx *ctx) in epilogue_offset() 288 static int build_prologue(struct jit_ctx *ct [all...] |
/kernel/linux/linux-5.10/arch/sparc/net/ |
H A D | bpf_jit_comp_64.c | 189 struct jit_ctx { struct 236 static void emit(const u32 insn, struct jit_ctx *ctx) in emit() 244 static void emit_call(u32 *func, struct jit_ctx *ctx) in emit_call() 256 static void emit_nop(struct jit_ctx *ctx) in emit_nop() 261 static void emit_reg_move(u32 from, u32 to, struct jit_ctx *ctx) in emit_reg_move() 267 static void emit_set_const(s32 K, u32 reg, struct jit_ctx *ctx) in emit_set_const() 274 static void emit_set_const_sext(s32 K, u32 reg, struct jit_ctx *ctx) in emit_set_const_sext() 288 static void emit_alu(u32 opcode, u32 src, u32 dst, struct jit_ctx *ctx) in emit_alu() 293 static void emit_alu3(u32 opcode, u32 a, u32 b, u32 c, struct jit_ctx *ctx) in emit_alu3() 299 struct jit_ctx *ct in emit_alu_K() [all...] |
/kernel/linux/linux-6.6/arch/sparc/net/ |
H A D | bpf_jit_comp_64.c | 189 struct jit_ctx { struct 236 static void emit(const u32 insn, struct jit_ctx *ctx) in emit() 244 static void emit_call(u32 *func, struct jit_ctx *ctx) in emit_call() 256 static void emit_nop(struct jit_ctx *ctx) in emit_nop() 261 static void emit_reg_move(u32 from, u32 to, struct jit_ctx *ctx) in emit_reg_move() 267 static void emit_set_const(s32 K, u32 reg, struct jit_ctx *ctx) in emit_set_const() 274 static void emit_set_const_sext(s32 K, u32 reg, struct jit_ctx *ctx) in emit_set_const_sext() 288 static void emit_alu(u32 opcode, u32 src, u32 dst, struct jit_ctx *ctx) in emit_alu() 293 static void emit_alu3(u32 opcode, u32 a, u32 b, u32 c, struct jit_ctx *ctx) in emit_alu3() 299 struct jit_ctx *ct in emit_alu_K() [all...] |
/kernel/linux/linux-5.10/arch/loongarch/net/ |
H A D | ebpf_jit.h | 12 struct jit_ctx { struct 25 struct jit_ctx ctx; 55 static inline int bpf2la_offset(int bpf_insn, int off, const struct jit_ctx *ctx) in bpf2la_offset() 67 static inline int epilogue_offset(const struct jit_ctx *ctx) in epilogue_offset() 596 static inline void emit_zext_32(struct jit_ctx *ctx, enum loongarch_gpr reg, bool is32) in emit_zext_32() 606 static inline void emit_sext_32(struct jit_ctx *ctx, enum loongarch_gpr reg) in emit_sext_32() 611 static inline void move_imm32(struct jit_ctx *ctx, enum loongarch_gpr rd, in move_imm32() 648 static inline void move_imm64(struct jit_ctx *ctx, enum loongarch_gpr rd, in move_imm64() 678 static inline void move_reg(struct jit_ctx *ctx, enum loongarch_gpr rd, in move_reg() 712 static inline void cond_jump_offs16(struct jit_ctx *ct [all...] |
H A D | ebpf_jit.c | 46 static void mark_call(struct jit_ctx *ctx) in mark_call() 51 static void mark_tail_call(struct jit_ctx *ctx) in mark_tail_call() 56 static bool seen_call(struct jit_ctx *ctx) in seen_call() 61 static bool seen_tail_call(struct jit_ctx *ctx) in seen_tail_call() 66 static u8 tail_call_reg(struct jit_ctx *ctx) in tail_call_reg() 100 static void build_prologue(struct jit_ctx *ctx) in build_prologue() 166 static void __build_epilogue(struct jit_ctx *ctx, bool is_tail_call) in __build_epilogue() 211 void build_epilogue(struct jit_ctx *ctx) in build_epilogue() 218 static int emit_bpf_tail_call(struct jit_ctx *ctx) in emit_bpf_tail_call() 284 static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ct [all...] |
/kernel/linux/linux-5.10/arch/arm64/net/ |
H A D | bpf_jit_comp.c | 55 struct jit_ctx { struct 65 static inline void emit(const u32 insn, struct jit_ctx *ctx) in emit() 74 const s32 val, struct jit_ctx *ctx) in emit_a64_mov_i() 103 struct jit_ctx *ctx) in emit_a64_mov_i64() 133 struct jit_ctx *ctx) in emit_addr_mov_i64() 147 const struct jit_ctx *ctx) in bpf2a64_offset() 167 static inline int epilogue_offset(const struct jit_ctx *ctx) in epilogue_offset() 191 static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf) in build_prologue() 266 static int emit_bpf_tail_call(struct jit_ctx *ctx) in emit_bpf_tail_call() 331 static void build_epilogue(struct jit_ctx *ct [all...] |