2 * Test 0023: BPF_JMP+BPF_JSET+BPF_X
8 struct bpf_insn pc[] = {
9 BPF_STMT(BPF_LD+BPF_IMM, 0x01234567),
10 BPF_STMT(BPF_LDX+BPF_IMM, 0x80000000),
11 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 9, 0),
12 BPF_STMT(BPF_LDX+BPF_IMM, 0x40000000),
13 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 7, 0),
14 BPF_STMT(BPF_LDX+BPF_IMM, 0x20000000),
15 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 5, 0),
16 BPF_STMT(BPF_LDX+BPF_IMM, 0x10000000),
17 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 3, 0),
18 BPF_STMT(BPF_LDX+BPF_IMM, 0x1),
19 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0x1, 2, 1),
20 BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
21 BPF_STMT(BPF_RET+BPF_A, 0),
22 BPF_STMT(BPF_LDX+BPF_IMM, 0x08000000),
23 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 5, 0),
24 BPF_STMT(BPF_LDX+BPF_IMM, 0x04000000),
25 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 3, 0),
26 BPF_STMT(BPF_LDX+BPF_IMM, 0x02000000),
27 BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 1, 0),
28 BPF_STMT(BPF_LD+BPF_IMM, 0xc0decafe),
29 BPF_STMT(BPF_RET+BPF_A, 0),
37 /* Packet length seen on wire */
38 u_int wirelen = sizeof(pkt);
40 /* Packet length passed on buffer */
41 u_int buflen = sizeof(pkt);
43 /* Invalid instruction */
46 /* Expected return value */
47 u_int expect = 0xc0decafe;
50 int expect_signal = 0;