Lines Matching refs:len

24 static void dump_bytes(const u8 *buf, u32 len, const char *header)  in dump_bytes()  argument
31 for (i = 0, j = 0; i < len; i++) { in dump_bytes()
33 if (i == len - 1) { in dump_bytes()
59 u32 len; member
129 dump_bytes((u8 *)prog->insns, 8 * prog->len, " VM "); in vm_dump()
152 dump_bytes(ctx->jit.buf, ctx->jit.len, header); in jit_dump()
155 bpf_jit_dump(ctx->prog->len, ctx->jit.len, pass, ctx->jit.buf); in jit_dump()
237 ctx->jit.len = 0; in jit_ctx_cleanup()
254 for (i = 0; i < ctx->prog->len; i++) { in analyze_reg_usage()
275 } else if (ctx->jit.index > ctx->jit.len) { in jit_buffer_check()
288 ctx->jit.len += n; in jit_buffer_update()
304 u32 len = 0; in handle_prologue() local
308 len = arc_prologue(buf, ctx->arc_regs_clobbered, ctx->frame_size); in handle_prologue()
309 jit_buffer_update(ctx, len); in handle_prologue()
319 u32 len = 0; in handle_epilogue() local
323 len = arc_epilogue(buf, ctx->arc_regs_clobbered, ctx->frame_size); in handle_epilogue()
324 jit_buffer_update(ctx, len); in handle_epilogue()
383 return idx == (prog->len - 1); in is_last_insn()
404 bool force, bool do_zext, u8 *len) in handle_swap() argument
417 *len = gen_swap(buf, rd, size, endian, force, do_zext); in handle_swap()
426 return (idx >= 0 && idx < ctx->prog->len); in check_insn_idx_valid()
583 u8 *len) in handle_jumps() argument
593 *len = 0; in handle_jumps()
612 *len += mov_r32_i32(BUF(buf, *len), JIT_REG_TMP, in handle_jumps()
615 *len += mov_r64_i32(BUF(buf, *len), JIT_REG_TMP, in handle_jumps()
623 curr_off = get_curr_jit_off(ctx, insn) + *len; in handle_jumps()
631 *len += gen_jmp_32(BUF(buf, *len), rd, rs, cond, in handle_jumps()
634 *len += gen_jmp_64(BUF(buf, *len), rd, rs, cond, in handle_jumps()
643 const struct bpf_insn *insn, u8 *len) in handle_jmp_epilogue() argument
660 *len = gen_jmp_64(buf, 0, 0, ARC_CC_AL, curr_off, epi_off); in handle_jmp_epilogue()
668 u8 *len) in handle_call() argument
687 *len = gen_func_call(buf, (ARC_ADDR)addr, in_kernel_func); in handle_call()
691 *len += arc_to_bpf_return(BUF(buf, *len)); in handle_call()
705 u8 *len) in handle_ld_imm64() argument
716 *len = mov_r64_i64(buf, insn->dst_reg, insn->imm, (insn + 1)->imm); in handle_ld_imm64()
745 u8 len = 0; in handle_insn() local
751 len = add_r32(buf, dst, src); in handle_insn()
755 len = add_r32_i32(buf, dst, imm); in handle_insn()
759 len = sub_r32(buf, dst, src); in handle_insn()
763 len = sub_r32_i32(buf, dst, imm); in handle_insn()
767 len = neg_r32(buf, dst); in handle_insn()
771 len = mul_r32(buf, dst, src); in handle_insn()
775 len = mul_r32_i32(buf, dst, imm); in handle_insn()
779 len = div_r32(buf, dst, src, off == 1); in handle_insn()
783 len = div_r32_i32(buf, dst, imm, off == 1); in handle_insn()
787 len = mod_r32(buf, dst, src, off == 1); in handle_insn()
791 len = mod_r32_i32(buf, dst, imm, off == 1); in handle_insn()
795 len = and_r32(buf, dst, src); in handle_insn()
799 len = and_r32_i32(buf, dst, imm); in handle_insn()
803 len = or_r32(buf, dst, src); in handle_insn()
807 len = or_r32_i32(buf, dst, imm); in handle_insn()
811 len = xor_r32(buf, dst, src); in handle_insn()
815 len = xor_r32_i32(buf, dst, imm); in handle_insn()
819 len = lsh_r32(buf, dst, src); in handle_insn()
823 len = lsh_r32_i32(buf, dst, imm); in handle_insn()
827 len = rsh_r32(buf, dst, src); in handle_insn()
831 len = rsh_r32_i32(buf, dst, imm); in handle_insn()
835 len = arsh_r32(buf, dst, src); in handle_insn()
839 len = arsh_r32_i32(buf, dst, imm); in handle_insn()
843 len = mov_r32(buf, dst, src, (u8)off); in handle_insn()
847 len = mov_r32_i32(buf, dst, imm); in handle_insn()
855 ctx->do_zext, &len)); in handle_insn()
860 len = add_r64(buf, dst, src); in handle_insn()
864 len = add_r64_i32(buf, dst, imm); in handle_insn()
868 len = sub_r64(buf, dst, src); in handle_insn()
872 len = sub_r64_i32(buf, dst, imm); in handle_insn()
876 len = neg_r64(buf, dst); in handle_insn()
880 len = mul_r64(buf, dst, src); in handle_insn()
884 len = mul_r64_i32(buf, dst, imm); in handle_insn()
888 len = and_r64(buf, dst, src); in handle_insn()
892 len = and_r64_i32(buf, dst, imm); in handle_insn()
896 len = or_r64(buf, dst, src); in handle_insn()
900 len = or_r64_i32(buf, dst, imm); in handle_insn()
904 len = xor_r64(buf, dst, src); in handle_insn()
908 len = xor_r64_i32(buf, dst, imm); in handle_insn()
912 len = lsh_r64(buf, dst, src); in handle_insn()
916 len = lsh_r64_i32(buf, dst, imm); in handle_insn()
920 len = rsh_r64(buf, dst, src); in handle_insn()
924 len = rsh_r64_i32(buf, dst, imm); in handle_insn()
928 len = arsh_r64(buf, dst, src); in handle_insn()
932 len = arsh_r64_i32(buf, dst, imm); in handle_insn()
936 len = mov_r64(buf, dst, src, (u8)off); in handle_insn()
940 len = mov_r64_i32(buf, dst, imm); in handle_insn()
944 CHECK_RET(handle_ld_imm64(ctx, insn, &len)); in handle_insn()
953 len = load_r(buf, dst, src, off, BPF_SIZE(code), false); in handle_insn()
958 len = load_r(buf, dst, src, off, BPF_SIZE(code), true); in handle_insn()
965 len = store_r(buf, src, dst, off, BPF_SIZE(code)); in handle_insn()
971 len = store_i(buf, imm, dst, off, BPF_SIZE(code)); in handle_insn()
1019 CHECK_RET(handle_jumps(ctx, insn, &len)); in handle_insn()
1022 CHECK_RET(handle_call(ctx, insn, &len)); in handle_insn()
1029 CHECK_RET(handle_jmp_epilogue(ctx, insn, &len)); in handle_insn()
1044 len += zext(BUF(buf, len), dst); in handle_insn()
1047 jit_buffer_update(ctx, len); in handle_insn()
1068 for (u32 i = 0; i < prog->len; i++) { in handle_body()
1071 ctx->bpf2insn[i] = ctx->jit.len; in handle_body()
1115 ctx->bpf2insn = kcalloc(ctx->prog->len, sizeof(ctx->jit.len), in jit_prepare_early_mem_alloc()
1135 ctx->bpf_header = bpf_jit_binary_alloc(ctx->jit.len, &ctx->jit.buf, in jit_prepare_final_mem_alloc()
1174 ctx->epilogue_offset = ctx->jit.len; in jit_prepare()
1205 if (ctx->jit.index != ctx->jit.len) { in jit_compile()
1208 ctx->jit.len, ctx->jit.index); in jit_compile()
1241 BUF(ctx->jit.buf, ctx->jit.len)); in jit_finalize()
1248 prog->jited_len = ctx->jit.len; in jit_finalize()
1284 ctx->jit.len = ctx->prog->jited_len; in jit_resume_context()
1313 for (u32 i = 0; i < prog->len; i++) { in jit_patch_relocations()