brintos

brintos / linux-shallow public Read only

0
0
Text · 6.0 KiB · 8bf37e5 Raw
219 lines · c
1{2	"jit: lsh, rsh, arsh by 1",3	.insns = {4	BPF_MOV64_IMM(BPF_REG_0, 1),5	BPF_MOV64_IMM(BPF_REG_1, 0xff),6	BPF_ALU64_IMM(BPF_LSH, BPF_REG_1, 1),7	BPF_ALU32_IMM(BPF_LSH, BPF_REG_1, 1),8	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x3fc, 1),9	BPF_EXIT_INSN(),10	BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 1),11	BPF_ALU32_IMM(BPF_RSH, BPF_REG_1, 1),12	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0xff, 1),13	BPF_EXIT_INSN(),14	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_1, 1),15	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x7f, 1),16	BPF_EXIT_INSN(),17	BPF_MOV64_IMM(BPF_REG_0, 2),18	BPF_EXIT_INSN(),19	},20	.result = ACCEPT,21	.retval = 2,22},23{24	"jit: lsh, rsh, arsh by reg",25	.insns = {26	BPF_MOV64_IMM(BPF_REG_0, 1),27	BPF_MOV64_IMM(BPF_REG_4, 1),28	BPF_MOV64_IMM(BPF_REG_1, 0xff),29	BPF_ALU64_REG(BPF_LSH, BPF_REG_1, BPF_REG_0),30	BPF_ALU32_REG(BPF_LSH, BPF_REG_1, BPF_REG_4),31	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x3fc, 1),32	BPF_EXIT_INSN(),33	BPF_ALU64_REG(BPF_RSH, BPF_REG_1, BPF_REG_4),34	BPF_MOV64_REG(BPF_REG_4, BPF_REG_1),35	BPF_ALU32_REG(BPF_RSH, BPF_REG_4, BPF_REG_0),36	BPF_JMP_IMM(BPF_JEQ, BPF_REG_4, 0xff, 1),37	BPF_EXIT_INSN(),38	BPF_ALU64_REG(BPF_ARSH, BPF_REG_4, BPF_REG_4),39	BPF_JMP_IMM(BPF_JEQ, BPF_REG_4, 0, 1),40	BPF_EXIT_INSN(),41	BPF_MOV64_IMM(BPF_REG_0, 2),42	BPF_EXIT_INSN(),43	},44	.result = ACCEPT,45	.retval = 2,46},47{48	"jit: mov32 for ldimm64, 1",49	.insns = {50	BPF_MOV64_IMM(BPF_REG_0, 2),51	BPF_LD_IMM64(BPF_REG_1, 0xfeffffffffffffffULL),52	BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 32),53	BPF_LD_IMM64(BPF_REG_2, 0xfeffffffULL),54	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),55	BPF_MOV64_IMM(BPF_REG_0, 1),56	BPF_EXIT_INSN(),57	},58	.result = ACCEPT,59	.retval = 2,60},61{62	"jit: mov32 for ldimm64, 2",63	.insns = {64	BPF_MOV64_IMM(BPF_REG_0, 1),65	BPF_LD_IMM64(BPF_REG_1, 0x1ffffffffULL),66	BPF_LD_IMM64(BPF_REG_2, 0xffffffffULL),67	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),68	BPF_MOV64_IMM(BPF_REG_0, 2),69	BPF_EXIT_INSN(),70	},71	.result = ACCEPT,72	.retval = 2,73},74{75	"jit: various mul tests",76	.insns = {77	BPF_LD_IMM64(BPF_REG_2, 0xeeff0d413122ULL),78	BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL),79	BPF_LD_IMM64(BPF_REG_1, 0xefefefULL),80	BPF_ALU64_REG(BPF_MUL, BPF_REG_0, BPF_REG_1),81	BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),82	BPF_MOV64_IMM(BPF_REG_0, 1),83	BPF_EXIT_INSN(),84	BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL),85	BPF_ALU64_REG(BPF_MUL, BPF_REG_3, BPF_REG_1),86	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),87	BPF_MOV64_IMM(BPF_REG_0, 1),88	BPF_EXIT_INSN(),89	BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL),90	BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, 0xefefef),91	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),92	BPF_MOV64_IMM(BPF_REG_0, 1),93	BPF_EXIT_INSN(),94	BPF_MOV32_REG(BPF_REG_2, BPF_REG_2),95	BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL),96	BPF_ALU32_REG(BPF_MUL, BPF_REG_0, BPF_REG_1),97	BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),98	BPF_MOV64_IMM(BPF_REG_0, 1),99	BPF_EXIT_INSN(),100	BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL),101	BPF_ALU32_REG(BPF_MUL, BPF_REG_3, BPF_REG_1),102	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),103	BPF_MOV64_IMM(BPF_REG_0, 1),104	BPF_EXIT_INSN(),105	BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL),106	BPF_ALU32_IMM(BPF_MUL, BPF_REG_3, 0xefefef),107	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),108	BPF_MOV64_IMM(BPF_REG_0, 1),109	BPF_EXIT_INSN(),110	BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL),111	BPF_LD_IMM64(BPF_REG_2, 0x2ad4d4aaULL),112	BPF_ALU32_IMM(BPF_MUL, BPF_REG_0, 0x2b),113	BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),114	BPF_MOV64_IMM(BPF_REG_0, 1),115	BPF_EXIT_INSN(),116	BPF_LD_IMM64(BPF_REG_0, 0x952a7bbcULL),117	BPF_LD_IMM64(BPF_REG_1, 0xfefefeULL),118	BPF_LD_IMM64(BPF_REG_5, 0xeeff0d413122ULL),119	BPF_ALU32_REG(BPF_MUL, BPF_REG_5, BPF_REG_1),120	BPF_JMP_REG(BPF_JEQ, BPF_REG_5, BPF_REG_0, 2),121	BPF_MOV64_IMM(BPF_REG_0, 1),122	BPF_EXIT_INSN(),123	BPF_MOV64_IMM(BPF_REG_0, 2),124	BPF_EXIT_INSN(),125	},126	.result = ACCEPT,127	.retval = 2,128},129{130	"jit: various div tests",131	.insns = {132	BPF_LD_IMM64(BPF_REG_2, 0xefeffeULL),133	BPF_LD_IMM64(BPF_REG_0, 0xeeff0d413122ULL),134	BPF_LD_IMM64(BPF_REG_1, 0xfefeeeULL),135	BPF_ALU64_REG(BPF_DIV, BPF_REG_0, BPF_REG_1),136	BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),137	BPF_MOV64_IMM(BPF_REG_0, 1),138	BPF_EXIT_INSN(),139	BPF_LD_IMM64(BPF_REG_3, 0xeeff0d413122ULL),140	BPF_ALU64_IMM(BPF_DIV, BPF_REG_3, 0xfefeeeULL),141	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),142	BPF_MOV64_IMM(BPF_REG_0, 1),143	BPF_EXIT_INSN(),144	BPF_LD_IMM64(BPF_REG_2, 0xaa93ULL),145	BPF_ALU64_IMM(BPF_MOD, BPF_REG_1, 0xbeefULL),146	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 2),147	BPF_MOV64_IMM(BPF_REG_0, 1),148	BPF_EXIT_INSN(),149	BPF_LD_IMM64(BPF_REG_1, 0xfefeeeULL),150	BPF_LD_IMM64(BPF_REG_3, 0xbeefULL),151	BPF_ALU64_REG(BPF_MOD, BPF_REG_1, BPF_REG_3),152	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 2),153	BPF_MOV64_IMM(BPF_REG_0, 1),154	BPF_EXIT_INSN(),155	BPF_LD_IMM64(BPF_REG_2, 0x5ee1dULL),156	BPF_LD_IMM64(BPF_REG_1, 0xfefeeeULL),157	BPF_LD_IMM64(BPF_REG_3, 0x2bULL),158	BPF_ALU32_REG(BPF_DIV, BPF_REG_1, BPF_REG_3),159	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 2),160	BPF_MOV64_IMM(BPF_REG_0, 1),161	BPF_EXIT_INSN(),162	BPF_ALU32_REG(BPF_DIV, BPF_REG_1, BPF_REG_1),163	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2),164	BPF_MOV64_IMM(BPF_REG_0, 1),165	BPF_EXIT_INSN(),166	BPF_ALU64_REG(BPF_MOD, BPF_REG_2, BPF_REG_2),167	BPF_JMP_IMM(BPF_JEQ, BPF_REG_2, 0, 2),168	BPF_MOV64_IMM(BPF_REG_0, 1),169	BPF_EXIT_INSN(),170	BPF_MOV64_IMM(BPF_REG_0, 2),171	BPF_EXIT_INSN(),172	},173	.result = ACCEPT,174	.retval = 2,175},176{177	"jit: jsgt, jslt",178	.insns = {179	BPF_LD_IMM64(BPF_REG_1, 0x80000000ULL),180	BPF_LD_IMM64(BPF_REG_2, 0x0ULL),181	BPF_JMP_REG(BPF_JSGT, BPF_REG_1, BPF_REG_2, 2),182	BPF_MOV64_IMM(BPF_REG_0, 1),183	BPF_EXIT_INSN(),184 185	BPF_JMP_REG(BPF_JSLT, BPF_REG_2, BPF_REG_1, 2),186	BPF_MOV64_IMM(BPF_REG_0, 1),187	BPF_EXIT_INSN(),188 189	BPF_MOV64_IMM(BPF_REG_0, 2),190	BPF_EXIT_INSN(),191	},192	.result = ACCEPT,193	.retval = 2,194},195{196	"jit: torturous jumps, imm8 nop jmp and pure jump padding",197	.insns = { },198	.fill_helper = bpf_fill_torturous_jumps,199	.prog_type = BPF_PROG_TYPE_SCHED_CLS,200	.result = ACCEPT,201	.retval = 1,202},203{204	"jit: torturous jumps, imm32 nop jmp and jmp_cond padding",205	.insns = { },206	.fill_helper = bpf_fill_torturous_jumps,207	.prog_type = BPF_PROG_TYPE_SCHED_CLS,208	.result = ACCEPT,209	.retval = 2,210},211{212	"jit: torturous jumps in subprog",213	.insns = { },214	.fill_helper = bpf_fill_torturous_jumps,215	.prog_type = BPF_PROG_TYPE_SCHED_CLS,216	.result = ACCEPT,217	.retval = 3,218},219