Lines Matching refs:code
255 return insn->code == (BPF_JMP | BPF_CALL) && in bpf_helper_call()
261 return insn->code == (BPF_JMP | BPF_CALL) && in bpf_pseudo_call()
267 return insn->code == (BPF_JMP | BPF_CALL) && in bpf_pseudo_kfunc_call()
544 return insn->code == (BPF_JMP | BPF_JCOND) && insn->src_reg == BPF_MAY_GOTO; in is_may_goto_insn()
577 return BPF_CLASS(insn->code) == BPF_STX && in is_cmpxchg_insn()
578 BPF_MODE(insn->code) == BPF_ATOMIC && in is_cmpxchg_insn()
584 return BPF_CLASS(insn->code) == BPF_STX && in is_atomic_load_insn()
585 BPF_MODE(insn->code) == BPF_ATOMIC && in is_atomic_load_insn()
3389 u8 code = insn->code; in jmp_offset() local
3391 if (code == (BPF_JMP32 | BPF_JA)) in jmp_offset()
3407 u8 code = insn[i].code; in check_subprogs() local
3409 if (code == (BPF_JMP | BPF_CALL) && in check_subprogs()
3415 if (BPF_CLASS(code) == BPF_LD && in check_subprogs()
3416 (BPF_MODE(code) == BPF_ABS || BPF_MODE(code) == BPF_IND)) in check_subprogs()
3418 if (BPF_CLASS(code) != BPF_JMP && BPF_CLASS(code) != BPF_JMP32) in check_subprogs()
3420 if (BPF_OP(code) == BPF_EXIT || BPF_OP(code) == BPF_CALL) in check_subprogs()
3433 if (code != (BPF_JMP | BPF_EXIT) && in check_subprogs()
3434 code != (BPF_JMP32 | BPF_JA) && in check_subprogs()
3435 code != (BPF_JMP | BPF_JA)) { in check_subprogs()
3560 u8 code, class, op; in is_reg64() local
3562 code = insn->code; in is_reg64()
3563 class = BPF_CLASS(code); in is_reg64()
3564 op = BPF_OP(code); in is_reg64()
3601 return BPF_SIZE(code) == BPF_DW || BPF_MODE(code) == BPF_MEMSX; in is_reg64()
3613 return BPF_SIZE(code) == BPF_DW; in is_reg64()
3617 u8 mode = BPF_MODE(code); in is_reg64()
3646 switch (BPF_CLASS(insn->code)) { in insn_def_regno()
3652 if ((BPF_MODE(insn->code) == BPF_ATOMIC || in insn_def_regno()
3653 BPF_MODE(insn->code) == BPF_PROBE_ATOMIC) && in insn_def_regno()
4164 u8 class = BPF_CLASS(insn->code); in backtrack_insn()
4165 u8 opcode = BPF_OP(insn->code); in backtrack_insn()
4166 u8 mode = BPF_MODE(insn->code); in backtrack_insn()
4171 if (insn->code == 0) in backtrack_insn()
4198 if (BPF_SRC(insn->code) == BPF_X) { in backtrack_insn()
4216 if (BPF_SRC(insn->code) == BPF_X) { in backtrack_insn()
4407 } else if (BPF_SRC(insn->code) == BPF_X) { in backtrack_insn()
4418 } else if (BPF_SRC(insn->code) == BPF_K) { in backtrack_insn()
4959 return BPF_CLASS(insn->code) == BPF_ST && BPF_MODE(insn->code) == BPF_MEM; in is_bpf_st_mem()
5902 int class = BPF_CLASS(insn->code); in check_map_kptr_access()
5912 if (BPF_MODE(insn->code) != BPF_MEM) { in check_map_kptr_access()
7686 BPF_SIZE(insn->code), BPF_READ, insn->dst_reg, in check_load_mem()
7716 BPF_SIZE(insn->code), BPF_WRITE, insn->src_reg, in check_store_reg()
7729 if (BPF_SIZE(insn->code) != BPF_W && BPF_SIZE(insn->code) != BPF_DW) { in check_atomic_rmw()
7791 BPF_SIZE(insn->code), BPF_READ, -1, true, false); in check_atomic_rmw()
7794 insn->off, BPF_SIZE(insn->code), in check_atomic_rmw()
7806 BPF_SIZE(insn->code), BPF_WRITE, -1, true, false); in check_atomic_rmw()
7865 if (BPF_SIZE(insn->code) == BPF_DW && BITS_PER_LONG != 64) { in check_atomic()
7872 if (BPF_SIZE(insn->code) == BPF_DW && BITS_PER_LONG != 64) { in check_atomic()
14000 return env->bypass_spec_v1 || BPF_SRC(insn->code) == BPF_K; in can_skip_alu_sanitation()
14052 if (BPF_SRC(insn->code) == BPF_K) { in sanitize_speculative_path()
14054 } else if (BPF_SRC(insn->code) == BPF_X) { in sanitize_speculative_path()
14075 u8 opcode = BPF_OP(insn->code); in sanitize_ptr_alu()
14177 const char *op = BPF_OP(insn->code) == BPF_ADD ? "add" : "sub"; in sanitize_err()
14295 u8 opcode = BPF_OP(insn->code); in adjust_ptr_min_max_vals()
14310 if (BPF_CLASS(insn->code) != BPF_ALU64) { in adjust_ptr_min_max_vals()
15040 u64 insn_bitness = (BPF_CLASS(insn->code) == BPF_ALU64) ? 64 : 32; in is_safe_to_compute_dst_reg_range()
15054 switch (BPF_OP(insn->code)) { in is_safe_to_compute_dst_reg_range()
15085 u8 opcode = BPF_OP(insn->code); in adjust_scalar_min_max_vals()
15086 bool alu32 = (BPF_CLASS(insn->code) != BPF_ALU64); in adjust_scalar_min_max_vals()
15184 bool alu32 = (BPF_CLASS(insn->code) != BPF_ALU64); in adjust_reg_min_max_vals()
15185 u8 opcode = BPF_OP(insn->code); in adjust_reg_min_max_vals()
15194 if (BPF_CLASS(insn->code) == BPF_ALU64) in adjust_reg_min_max_vals()
15208 if (BPF_SRC(insn->code) == BPF_X) { in adjust_reg_min_max_vals()
15284 BPF_OP(insn->code) == BPF_ADD && !alu32 && in adjust_reg_min_max_vals()
15315 u8 opcode = BPF_OP(insn->code); in check_alu_op()
15320 if (BPF_SRC(insn->code) != BPF_K || in check_alu_op()
15329 (BPF_CLASS(insn->code) == BPF_ALU64 && in check_alu_op()
15330 BPF_SRC(insn->code) != BPF_TO_LE)) { in check_alu_op()
15354 if (BPF_SRC(insn->code) == BPF_X) { in check_alu_op()
15355 if (BPF_CLASS(insn->code) == BPF_ALU) { in check_alu_op()
15394 if (BPF_SRC(insn->code) == BPF_X) { in check_alu_op()
15398 if (BPF_CLASS(insn->code) == BPF_ALU64) { in check_alu_op()
15487 if (BPF_CLASS(insn->code) == BPF_ALU64) { in check_alu_op()
15502 if (BPF_SRC(insn->code) == BPF_X) { in check_alu_op()
15526 BPF_SRC(insn->code) == BPF_K && insn->imm == 0) { in check_alu_op()
15532 opcode == BPF_ARSH) && BPF_SRC(insn->code) == BPF_K) { in check_alu_op()
15533 int size = BPF_CLASS(insn->code) == BPF_ALU64 ? 64 : 32; in check_alu_op()
16178 if (BPF_SRC(insn->code) != BPF_X) in try_match_pkt_pointers()
16182 if (BPF_CLASS(insn->code) == BPF_JMP32) in try_match_pkt_pointers()
16185 switch (BPF_OP(insn->code)) { in try_match_pkt_pointers()
16379 u8 opcode = BPF_OP(insn->code); in check_cond_jmp_op()
16394 if (insn->code != (BPF_JMP | BPF_JCOND) || in check_cond_jmp_op()
16420 if (BPF_SRC(insn->code) == BPF_X) { in check_cond_jmp_op()
16449 is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32; in check_cond_jmp_op()
16457 if (BPF_SRC(insn->code) == BPF_X && !err && in check_cond_jmp_op()
16497 if (BPF_SRC(insn->code) == BPF_X && src_reg->type == SCALAR_VALUE && src_reg->id) in check_cond_jmp_op()
16513 if (BPF_SRC(insn->code) == BPF_X) { in check_cond_jmp_op()
16534 if (BPF_SRC(insn->code) == BPF_X && in check_cond_jmp_op()
16558 if (!is_jmp32 && BPF_SRC(insn->code) == BPF_X && in check_cond_jmp_op()
16587 if (!is_jmp32 && BPF_SRC(insn->code) == BPF_K && in check_cond_jmp_op()
16618 if (BPF_SIZE(insn->code) != BPF_DW) { in check_ld_imm()
16737 u8 mode = BPF_MODE(insn->code); in check_ld_abs()
16751 BPF_SIZE(insn->code) == BPF_DW || in check_ld_abs()
17371 if (stx->code != (BPF_STX | BPF_MEM | BPF_DW) || in mark_fastcall_pattern_for_call()
17372 ldx->code != (BPF_LDX | BPF_MEM | BPF_DW) || in mark_fastcall_pattern_for_call()
17430 if (insn->code != (BPF_STX | BPF_MEM | BPF_DW) || in mark_fastcall_patterns()
17438 if (insn->code != (BPF_JMP | BPF_CALL)) in mark_fastcall_patterns()
17460 if (BPF_CLASS(insn->code) != BPF_JMP && in visit_insn()
17461 BPF_CLASS(insn->code) != BPF_JMP32) { in visit_insn()
17466 switch (BPF_OP(insn->code)) { in visit_insn()
17536 if (BPF_SRC(insn->code) != BPF_K) in visit_insn()
17539 if (BPF_CLASS(insn->code) == BPF_JMP) in visit_insn()
17957 if (!prog->insnsi[linfo[i].insn_off].code) { in check_btf_line()
19419 class = BPF_CLASS(insn->code); in do_check()
19499 bool is_ldsx = BPF_MODE(insn->code) == BPF_MEMSX; in do_check()
19509 if (BPF_MODE(insn->code) == BPF_ATOMIC) { in do_check()
19517 if (BPF_MODE(insn->code) != BPF_MEM || insn->imm != 0) { in do_check()
19528 if (BPF_MODE(insn->code) != BPF_MEM || in do_check()
19542 insn->off, BPF_SIZE(insn->code), in do_check()
19551 u8 opcode = BPF_OP(insn->code); in do_check()
19555 if (BPF_SRC(insn->code) != BPF_K || in do_check()
19591 if (BPF_SRC(insn->code) != BPF_K || in do_check()
19607 if (BPF_SRC(insn->code) != BPF_K || in do_check()
19675 u8 mode = BPF_MODE(insn->code); in do_check()
20091 if (BPF_CLASS(insn->code) == BPF_LDX && in resolve_pseudo_ldimm64()
20092 ((BPF_MODE(insn->code) != BPF_MEM && BPF_MODE(insn->code) != BPF_MEMSX) || in resolve_pseudo_ldimm64()
20098 if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW)) { in resolve_pseudo_ldimm64()
20105 if (i == insn_cnt - 1 || insn[1].code != 0 || in resolve_pseudo_ldimm64()
20209 if (!bpf_opcode_in_insntable(insn->code)) { in resolve_pseudo_ldimm64()
20210 verbose(env, "unknown opcode %02x\n", insn->code); in resolve_pseudo_ldimm64()
20243 if (insn->code != (BPF_LD | BPF_IMM | BPF_DW)) in convert_pseudo_ld_imm64()
20355 u8 code = insn->code; in adjust_jmp_off() local
20360 if ((BPF_CLASS(code) != BPF_JMP && BPF_CLASS(code) != BPF_JMP32) || in adjust_jmp_off()
20361 BPF_OP(code) == BPF_CALL || BPF_OP(code) == BPF_EXIT) in adjust_jmp_off()
20364 if (insn->code == (BPF_JMP32 | BPF_JA)) { in adjust_jmp_off()
20555 static bool insn_is_cond_jump(u8 code) in insn_is_cond_jump() argument
20559 op = BPF_OP(code); in insn_is_cond_jump()
20560 if (BPF_CLASS(code) == BPF_JMP32) in insn_is_cond_jump()
20563 if (BPF_CLASS(code) != BPF_JMP) in insn_is_cond_jump()
20578 if (!insn_is_cond_jump(insn->code)) in opt_hard_wire_dead_code_branches()
20670 u8 code, class; in opt_subreg_zext_lo32_rnd_hi32() local
20676 code = insn.code; in opt_subreg_zext_lo32_rnd_hi32()
20677 class = BPF_CLASS(code); in opt_subreg_zext_lo32_rnd_hi32()
20687 BPF_MODE(code) == BPF_IMM) in opt_subreg_zext_lo32_rnd_hi32()
20827 if (insn->code == (BPF_LDX | BPF_MEM | BPF_B) || in convert_ctx_accesses()
20828 insn->code == (BPF_LDX | BPF_MEM | BPF_H) || in convert_ctx_accesses()
20829 insn->code == (BPF_LDX | BPF_MEM | BPF_W) || in convert_ctx_accesses()
20830 insn->code == (BPF_LDX | BPF_MEM | BPF_DW) || in convert_ctx_accesses()
20831 insn->code == (BPF_LDX | BPF_MEMSX | BPF_B) || in convert_ctx_accesses()
20832 insn->code == (BPF_LDX | BPF_MEMSX | BPF_H) || in convert_ctx_accesses()
20833 insn->code == (BPF_LDX | BPF_MEMSX | BPF_W)) { in convert_ctx_accesses()
20835 } else if (insn->code == (BPF_STX | BPF_MEM | BPF_B) || in convert_ctx_accesses()
20836 insn->code == (BPF_STX | BPF_MEM | BPF_H) || in convert_ctx_accesses()
20837 insn->code == (BPF_STX | BPF_MEM | BPF_W) || in convert_ctx_accesses()
20838 insn->code == (BPF_STX | BPF_MEM | BPF_DW) || in convert_ctx_accesses()
20839 insn->code == (BPF_ST | BPF_MEM | BPF_B) || in convert_ctx_accesses()
20840 insn->code == (BPF_ST | BPF_MEM | BPF_H) || in convert_ctx_accesses()
20841 insn->code == (BPF_ST | BPF_MEM | BPF_W) || in convert_ctx_accesses()
20842 insn->code == (BPF_ST | BPF_MEM | BPF_DW)) { in convert_ctx_accesses()
20844 } else if ((insn->code == (BPF_STX | BPF_ATOMIC | BPF_B) || in convert_ctx_accesses()
20845 insn->code == (BPF_STX | BPF_ATOMIC | BPF_H) || in convert_ctx_accesses()
20846 insn->code == (BPF_STX | BPF_ATOMIC | BPF_W) || in convert_ctx_accesses()
20847 insn->code == (BPF_STX | BPF_ATOMIC | BPF_DW)) && in convert_ctx_accesses()
20849 insn->code = BPF_STX | BPF_PROBE_ATOMIC | BPF_SIZE(insn->code); in convert_ctx_accesses()
20852 } else if (insn->code == (BPF_JMP | BPF_EXIT) && in convert_ctx_accesses()
20919 if (BPF_MODE(insn->code) == BPF_MEM) in convert_ctx_accesses()
20920 insn->code = BPF_LDX | BPF_PROBE_MEM | in convert_ctx_accesses()
20921 BPF_SIZE((insn)->code); in convert_ctx_accesses()
20923 insn->code = BPF_LDX | BPF_PROBE_MEMSX | in convert_ctx_accesses()
20924 BPF_SIZE((insn)->code); in convert_ctx_accesses()
20929 if (BPF_MODE(insn->code) == BPF_MEMSX) { in convert_ctx_accesses()
20933 insn->code = BPF_CLASS(insn->code) | BPF_PROBE_MEM32 | BPF_SIZE(insn->code); in convert_ctx_accesses()
20942 mode = BPF_MODE(insn->code); in convert_ctx_accesses()
20967 insn->code = BPF_LDX | BPF_MEM | size_code; in convert_ctx_accesses()
21137 if (BPF_CLASS(insn->code) == BPF_LDX && in jit_subprogs()
21138 (BPF_MODE(insn->code) == BPF_PROBE_MEM || in jit_subprogs()
21139 BPF_MODE(insn->code) == BPF_PROBE_MEM32 || in jit_subprogs()
21140 BPF_MODE(insn->code) == BPF_PROBE_MEMSX)) in jit_subprogs()
21142 if ((BPF_CLASS(insn->code) == BPF_STX || in jit_subprogs()
21143 BPF_CLASS(insn->code) == BPF_ST) && in jit_subprogs()
21144 BPF_MODE(insn->code) == BPF_PROBE_MEM32) in jit_subprogs()
21146 if (BPF_CLASS(insn->code) == BPF_STX && in jit_subprogs()
21147 BPF_MODE(insn->code) == BPF_PROBE_ATOMIC) in jit_subprogs()
21568 if (insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) && insn->imm) { in do_misc_fixups()
21572 insn->code = BPF_ALU | BPF_MOV | BPF_X; in do_misc_fixups()
21582 insn->code = BPF_ALU | BPF_OP(insn->code) | BPF_SRC(insn->code); in do_misc_fixups()
21585 if ((insn->code == (BPF_ALU64 | BPF_MOD | BPF_K) || in do_misc_fixups()
21586 insn->code == (BPF_ALU64 | BPF_DIV | BPF_K) || in do_misc_fixups()
21587 insn->code == (BPF_ALU | BPF_MOD | BPF_K) || in do_misc_fixups()
21588 insn->code == (BPF_ALU | BPF_DIV | BPF_K)) && in do_misc_fixups()
21590 bool is64 = BPF_CLASS(insn->code) == BPF_ALU64; in do_misc_fixups()
21591 bool isdiv = BPF_OP(insn->code) == BPF_DIV; in do_misc_fixups()
21616 if (insn->code == (BPF_ALU64 | BPF_MOD | BPF_X) || in do_misc_fixups()
21617 insn->code == (BPF_ALU64 | BPF_DIV | BPF_X) || in do_misc_fixups()
21618 insn->code == (BPF_ALU | BPF_MOD | BPF_X) || in do_misc_fixups()
21619 insn->code == (BPF_ALU | BPF_DIV | BPF_X)) { in do_misc_fixups()
21620 bool is64 = BPF_CLASS(insn->code) == BPF_ALU64; in do_misc_fixups()
21621 bool isdiv = BPF_OP(insn->code) == BPF_DIV; in do_misc_fixups()
21711 if (BPF_CLASS(insn->code) == BPF_LDX && in do_misc_fixups()
21712 (BPF_MODE(insn->code) == BPF_PROBE_MEM || in do_misc_fixups()
21713 BPF_MODE(insn->code) == BPF_PROBE_MEMSX)) { in do_misc_fixups()
21741 if (BPF_CLASS(insn->code) == BPF_LD && in do_misc_fixups()
21742 (BPF_MODE(insn->code) == BPF_ABS || in do_misc_fixups()
21743 BPF_MODE(insn->code) == BPF_IND)) { in do_misc_fixups()
21761 if (insn->code == (BPF_ALU64 | BPF_ADD | BPF_X) || in do_misc_fixups()
21762 insn->code == (BPF_ALU64 | BPF_SUB | BPF_X)) { in do_misc_fixups()
21796 insn->code = insn->code == code_add ? in do_misc_fixups()
21879 if (insn->code != (BPF_JMP | BPF_CALL)) in do_misc_fixups()
21927 insn->code = BPF_JMP | BPF_TAIL_CALL; in do_misc_fixups()
22536 return insn->code == (BPF_JMP | BPF_CALL) && in is_bpf_loop_call()
23610 u8 class = BPF_CLASS(insn->code); in can_fallthrough()
23611 u8 opcode = BPF_OP(insn->code); in can_fallthrough()
23624 u8 class = BPF_CLASS(insn->code); in can_jump()
23625 u8 opcode = BPF_OP(insn->code); in can_jump()
23685 u8 class = BPF_CLASS(insn->code); in compute_insn_live_regs()
23686 u8 code = BPF_OP(insn->code); in compute_insn_live_regs() local
23687 u8 mode = BPF_MODE(insn->code); in compute_insn_live_regs()
23698 if (BPF_SIZE(insn->code) == BPF_DW) { in compute_insn_live_regs()
23758 switch (code) { in compute_insn_live_regs()
23765 if (BPF_SRC(insn->code) == BPF_K) in compute_insn_live_regs()
23772 if (BPF_SRC(insn->code) == BPF_K) in compute_insn_live_regs()
23780 switch (code) { in compute_insn_live_regs()
23798 if (BPF_SRC(insn->code) == BPF_K) in compute_insn_live_regs()