18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "read uninitialized register", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_2), 58c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 68c2ecf20Sopenharmony_ci }, 78c2ecf20Sopenharmony_ci .errstr = "R2 !read_ok", 88c2ecf20Sopenharmony_ci .result = REJECT, 98c2ecf20Sopenharmony_ci}, 108c2ecf20Sopenharmony_ci{ 118c2ecf20Sopenharmony_ci "read invalid register", 128c2ecf20Sopenharmony_ci .insns = { 138c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, -1), 148c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 158c2ecf20Sopenharmony_ci }, 168c2ecf20Sopenharmony_ci .errstr = "R15 is invalid", 178c2ecf20Sopenharmony_ci .result = REJECT, 188c2ecf20Sopenharmony_ci}, 198c2ecf20Sopenharmony_ci{ 208c2ecf20Sopenharmony_ci "program doesn't init R0 before exit", 218c2ecf20Sopenharmony_ci .insns = { 228c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_MOV, BPF_REG_2, BPF_REG_1), 238c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 248c2ecf20Sopenharmony_ci }, 258c2ecf20Sopenharmony_ci .errstr = "R0 !read_ok", 268c2ecf20Sopenharmony_ci .result = REJECT, 278c2ecf20Sopenharmony_ci}, 288c2ecf20Sopenharmony_ci{ 298c2ecf20Sopenharmony_ci "program doesn't init R0 before exit in all branches", 308c2ecf20Sopenharmony_ci .insns = { 318c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 328c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 338c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_0, 2), 348c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 358c2ecf20Sopenharmony_ci }, 368c2ecf20Sopenharmony_ci .errstr = "R0 !read_ok", 378c2ecf20Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 388c2ecf20Sopenharmony_ci .result = REJECT, 398c2ecf20Sopenharmony_ci}, 40