bpf, riscv: Optimize FROM_LE using verifier_zext on RV64
authorLuke Nelson <lukenels@cs.washington.edu>
Wed, 6 May 2020 00:03:18 +0000 (17:03 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 6 May 2020 07:48:15 +0000 (09:48 +0200)
commit21a099abb765c3754689e1f7ca4536fa560112d0
treec6d2bc71c49617d48dd2d01a93821de4d6162349
parent0224b2acea0f9e3908d33e27b2dcb4e04686e997
bpf, riscv: Optimize FROM_LE using verifier_zext on RV64

This patch adds two optimizations for BPF_ALU BPF_END BPF_FROM_LE in
the RV64 BPF JIT.

First, it enables the verifier zero-extension optimization to avoid zero
extension when imm == 32. Second, it avoids generating code for imm ==
64, since it is equivalent to a no-op.

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/20200506000320.28965-3-luke.r.nels@gmail.com
arch/riscv/net/bpf_jit_comp64.c