Commit 8662de23 authored by Jie Meng's avatar Jie Meng Committed by Alexei Starovoitov
Browse files

bpf: add selftests for lsh, rsh, arsh with reg operand



Current tests cover only shifts with an immediate as the source
operand/shift counts; add a new test case to cover register operand.

Signed-off-by: default avatarJie Meng <jmeng@fb.com>
Link: https://lore.kernel.org/r/20221007202348.1118830-4-jmeng@fb.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 77d8f5d4
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -20,6 +20,30 @@
	.result = ACCEPT,
	.retval = 2,
},
{
	"jit: lsh, rsh, arsh by reg",
	.insns = {
	BPF_MOV64_IMM(BPF_REG_0, 1),
	BPF_MOV64_IMM(BPF_REG_4, 1),
	BPF_MOV64_IMM(BPF_REG_1, 0xff),
	BPF_ALU64_REG(BPF_LSH, BPF_REG_1, BPF_REG_0),
	BPF_ALU32_REG(BPF_LSH, BPF_REG_1, BPF_REG_4),
	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x3fc, 1),
	BPF_EXIT_INSN(),
	BPF_ALU64_REG(BPF_RSH, BPF_REG_1, BPF_REG_4),
	BPF_MOV64_REG(BPF_REG_4, BPF_REG_1),
	BPF_ALU32_REG(BPF_RSH, BPF_REG_4, BPF_REG_0),
	BPF_JMP_IMM(BPF_JEQ, BPF_REG_4, 0xff, 1),
	BPF_EXIT_INSN(),
	BPF_ALU64_REG(BPF_ARSH, BPF_REG_4, BPF_REG_4),
	BPF_JMP_IMM(BPF_JEQ, BPF_REG_4, 0, 1),
	BPF_EXIT_INSN(),
	BPF_MOV64_IMM(BPF_REG_0, 2),
	BPF_EXIT_INSN(),
	},
	.result = ACCEPT,
	.retval = 2,
},
{
	"jit: mov32 for ldimm64, 1",
	.insns = {