• Jiong Wang's avatar
    nfp: bpf: correct the behavior for shifts by zero · db0a4b3b
    Jiong Wang authored
    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: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarJiong Wang <jiong.wang@netronome.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    db0a4b3b
jit.c 122 KB