[bpf] add BPF disassembler

Description

[bpf] add BPF disassembler

add BPF disassembler, so tools like llvm-objdump can be used:
$ llvm-objdump -d -no-show-raw-insn ./sockex1_kern.o

./sockex1_kern.o: file format ELF64-BPF

Disassembly of section socket1:
bpf_prog1:

 0:	r6 = r1
 8:	r0 = *(u8 *)skb[23]
10:	*(u32 *)(r10 - 4) = r0
18:	r1 = *(u32 *)(r6 + 4)
20:	if r1 != 4 goto 8
28:	r2 = r10
30:	r2 += -4

ld_imm64 (the only 16-byte insn) and special ld_abs/ld_ind instructions
had to be treated in a special way. The decoders for the rest of the insns
are automatically generated.

Add tests to cover new functionality.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>

Details

Committed
astNov 19 2016, 6:25 PM
Parents
rL287476: Attempt to fix big-endian buildbots.
Branches
Unknown
Tags
Unknown