OSDN Git Service

riscv, bpf: Factor common RISC-V JIT code
authorLuke Nelson <lukenels@cs.washington.edu>
Thu, 5 Mar 2020 05:02:04 +0000 (21:02 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 5 Mar 2020 15:13:47 +0000 (16:13 +0100)
commitca6cb5447ceca6a87d6b62c9e5d41042c34f7ffa
tree85a27cd2f9fcdaa06a2d508bba75d91539bad684
parent9ce6010290587f4b0c57e2819481bd5ba9668349
riscv, bpf: Factor common RISC-V JIT code

This patch factors out code that can be used by both the RV64 and RV32
BPF JITs to a common bpf_jit.h and bpf_jit_core.c.

Move struct definitions and macro-like functions to header. Rename
rv_sb_insn/rv_uj_insn to rv_b_insn/rv_j_insn to match the RISC-V
specification.

Move reusable functions emit_body() and bpf_int_jit_compile() to
bpf_jit_core.c with minor simplifications. Rename emit_insn() and
build_{prologue,epilogue}() to be prefixed with "bpf_jit_" as they are
no longer static.

Rename bpf_jit_comp.c to bpf_jit_comp64.c to be more explicit.

Co-developed-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luke Nelson <luke.r.nels@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Björn Töpel <bjorn.topel@gmail.com>
Acked-by: Björn Töpel <bjorn.topel@gmail.com>
Link: https://lore.kernel.org/bpf/20200305050207.4159-2-luke.r.nels@gmail.com
arch/riscv/net/Makefile
arch/riscv/net/bpf_jit.h [new file with mode: 0644]
arch/riscv/net/bpf_jit_comp64.c [moved from arch/riscv/net/bpf_jit_comp.c with 69% similarity]
arch/riscv/net/bpf_jit_core.c [new file with mode: 0644]