bpf: Add bpf_nop_mov() asm macro.
authorAlexei Starovoitov <ast@kernel.org>
Tue, 26 Dec 2023 19:11:47 +0000 (11:11 -0800)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 3 Jan 2024 19:08:23 +0000 (11:08 -0800)
commit0bcc62aa9813f519db58df14ddf1d523fa971e62
tree884e35b466cf0bda2af66675bc3379dae60d37e1
parent907dbd3ede5ffd4f9519dd1fae2a8a983603bf3b
bpf: Add bpf_nop_mov() asm macro.

bpf_nop_mov(var) asm macro emits nop register move: rX = rX.
If 'var' is a scalar and not a fixed constant the verifier will assign ID to it.
If it's later spilled the stack slot will carry that ID as well.
Hence the range refining comparison "if rX < const" will update all copies
including spilled slot.
This macro is a temporary workaround until the verifier gets smarter.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231226191148.48536-6-alexei.starovoitov@gmail.com
tools/testing/selftests/bpf/bpf_experimental.h