]> git.baikalelectronics.ru Git - kernel.git/commit
nfp: bpf: correct the behavior for shifts by zero
authorJiong Wang <jiong.wang@netronome.com>
Fri, 1 Feb 2019 22:39:28 +0000 (22:39 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 2 Feb 2019 02:03:49 +0000 (18:03 -0800)
commit3c0467335e2370024883fe827ebf09bd7851150a
treecad7d695dc119461d22422b78d0033dea8fe90e4
parent9933266807180976829ba1631ac5c3a105d88b43
nfp: bpf: correct the behavior for shifts by zero

Shifts by zero do nothing, and should be treated as nops.

Even though compiler is not supposed to generate such instructions and
manual written assembly is unlikely to have them, but they are legal
instructions and have defined behavior.

This patch correct existing shifts code-gen to make sure they do nothing
when shift amount is zero except when the instruction is ALU32 for which
high bits need to be cleared.

For shift amount bigger than type size, already, NFP JIT back-end errors
out for immediate shift and only low 5 bits will be taken into account for
indirect shift which is the same as x86.

Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
drivers/net/ethernet/netronome/nfp/bpf/jit.c