Re: [oss-drivers] [PATCH AUTOSEL 5.0 192/262] nfp: bpf: correct the behavior for shifts by zero

From: Jakub Kicinski
Date: Wed Mar 27 2019 - 14:59:52 EST


On Wed, 27 Mar 2019 14:00:47 -0400, Sasha Levin wrote:
> From: Jiong Wang <jiong.wang@xxxxxxxxxxxxx>
>
> [ Upstream commit db0a4b3b6b83a081a9ec309cc8178e5c9b4706a5 ]
>
> 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@xxxxxxxxxxxxx>
> Signed-off-by: Jiong Wang <jiong.wang@xxxxxxxxxxxxx>
> Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

Nope.