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>
llvm-svn: 287477
24 lines
751 B
Plaintext
24 lines
751 B
Plaintext
;===- ./lib/Target/BPF/Disassembler/LLVMBuild.txt --------------*- Conf -*--===;
|
|
;
|
|
; The LLVM Compiler Infrastructure
|
|
;
|
|
; This file is distributed under the University of Illinois Open Source
|
|
; License. See LICENSE.TXT for details.
|
|
;
|
|
;===------------------------------------------------------------------------===;
|
|
;
|
|
; This is an LLVMBuild description file for the components in this subdirectory.
|
|
;
|
|
; For more information on the LLVMBuild system, please see:
|
|
;
|
|
; http://llvm.org/docs/LLVMBuild.html
|
|
;
|
|
;===------------------------------------------------------------------------===;
|
|
|
|
[component_0]
|
|
type = Library
|
|
name = BPFDisassembler
|
|
parent = BPF
|
|
required_libraries = MCDisassembler BPFInfo Support
|
|
add_to_library_groups = BPF
|