1*4882a593Smuzhiyun { 2*4882a593Smuzhiyun "masking, test out of bounds 1", 3*4882a593Smuzhiyun .insns = { 4*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 5), 5*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 5 - 1), 6*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 7*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 8*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 9*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 10*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 11*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 12*4882a593Smuzhiyun BPF_EXIT_INSN(), 13*4882a593Smuzhiyun }, 14*4882a593Smuzhiyun .result = ACCEPT, 15*4882a593Smuzhiyun .retval = 0, 16*4882a593Smuzhiyun }, 17*4882a593Smuzhiyun { 18*4882a593Smuzhiyun "masking, test out of bounds 2", 19*4882a593Smuzhiyun .insns = { 20*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 1), 21*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 22*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 23*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 24*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 25*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 26*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 27*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 28*4882a593Smuzhiyun BPF_EXIT_INSN(), 29*4882a593Smuzhiyun }, 30*4882a593Smuzhiyun .result = ACCEPT, 31*4882a593Smuzhiyun .retval = 0, 32*4882a593Smuzhiyun }, 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun "masking, test out of bounds 3", 35*4882a593Smuzhiyun .insns = { 36*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 0xffffffff), 37*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 38*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 39*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 40*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 41*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 42*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 43*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 44*4882a593Smuzhiyun BPF_EXIT_INSN(), 45*4882a593Smuzhiyun }, 46*4882a593Smuzhiyun .result = ACCEPT, 47*4882a593Smuzhiyun .retval = 0, 48*4882a593Smuzhiyun }, 49*4882a593Smuzhiyun { 50*4882a593Smuzhiyun "masking, test out of bounds 4", 51*4882a593Smuzhiyun .insns = { 52*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 0xffffffff), 53*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 54*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 55*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 56*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 57*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 58*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 59*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 60*4882a593Smuzhiyun BPF_EXIT_INSN(), 61*4882a593Smuzhiyun }, 62*4882a593Smuzhiyun .result = ACCEPT, 63*4882a593Smuzhiyun .retval = 0, 64*4882a593Smuzhiyun }, 65*4882a593Smuzhiyun { 66*4882a593Smuzhiyun "masking, test out of bounds 5", 67*4882a593Smuzhiyun .insns = { 68*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, -1), 69*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 70*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 71*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 72*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 73*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 74*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 75*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 76*4882a593Smuzhiyun BPF_EXIT_INSN(), 77*4882a593Smuzhiyun }, 78*4882a593Smuzhiyun .result = ACCEPT, 79*4882a593Smuzhiyun .retval = 0, 80*4882a593Smuzhiyun }, 81*4882a593Smuzhiyun { 82*4882a593Smuzhiyun "masking, test out of bounds 6", 83*4882a593Smuzhiyun .insns = { 84*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, -1), 85*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 86*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 87*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 88*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 89*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 90*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 91*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 92*4882a593Smuzhiyun BPF_EXIT_INSN(), 93*4882a593Smuzhiyun }, 94*4882a593Smuzhiyun .result = ACCEPT, 95*4882a593Smuzhiyun .retval = 0, 96*4882a593Smuzhiyun }, 97*4882a593Smuzhiyun { 98*4882a593Smuzhiyun "masking, test out of bounds 7", 99*4882a593Smuzhiyun .insns = { 100*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_1, 5), 101*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 5 - 1), 102*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 103*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 104*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 105*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 106*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 107*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 108*4882a593Smuzhiyun BPF_EXIT_INSN(), 109*4882a593Smuzhiyun }, 110*4882a593Smuzhiyun .result = ACCEPT, 111*4882a593Smuzhiyun .retval = 0, 112*4882a593Smuzhiyun }, 113*4882a593Smuzhiyun { 114*4882a593Smuzhiyun "masking, test out of bounds 8", 115*4882a593Smuzhiyun .insns = { 116*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_1, 1), 117*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 118*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 119*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 120*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 121*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 122*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 123*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 124*4882a593Smuzhiyun BPF_EXIT_INSN(), 125*4882a593Smuzhiyun }, 126*4882a593Smuzhiyun .result = ACCEPT, 127*4882a593Smuzhiyun .retval = 0, 128*4882a593Smuzhiyun }, 129*4882a593Smuzhiyun { 130*4882a593Smuzhiyun "masking, test out of bounds 9", 131*4882a593Smuzhiyun .insns = { 132*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_1, 0xffffffff), 133*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 134*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 135*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 136*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 137*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 138*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 139*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 140*4882a593Smuzhiyun BPF_EXIT_INSN(), 141*4882a593Smuzhiyun }, 142*4882a593Smuzhiyun .result = ACCEPT, 143*4882a593Smuzhiyun .retval = 0, 144*4882a593Smuzhiyun }, 145*4882a593Smuzhiyun { 146*4882a593Smuzhiyun "masking, test out of bounds 10", 147*4882a593Smuzhiyun .insns = { 148*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_1, 0xffffffff), 149*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 150*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 151*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 152*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 153*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 154*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 155*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 156*4882a593Smuzhiyun BPF_EXIT_INSN(), 157*4882a593Smuzhiyun }, 158*4882a593Smuzhiyun .result = ACCEPT, 159*4882a593Smuzhiyun .retval = 0, 160*4882a593Smuzhiyun }, 161*4882a593Smuzhiyun { 162*4882a593Smuzhiyun "masking, test out of bounds 11", 163*4882a593Smuzhiyun .insns = { 164*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_1, -1), 165*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 166*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 167*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 168*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 169*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 170*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 171*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 172*4882a593Smuzhiyun BPF_EXIT_INSN(), 173*4882a593Smuzhiyun }, 174*4882a593Smuzhiyun .result = ACCEPT, 175*4882a593Smuzhiyun .retval = 0, 176*4882a593Smuzhiyun }, 177*4882a593Smuzhiyun { 178*4882a593Smuzhiyun "masking, test out of bounds 12", 179*4882a593Smuzhiyun .insns = { 180*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_1, -1), 181*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 182*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 183*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 184*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 185*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 186*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 187*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 188*4882a593Smuzhiyun BPF_EXIT_INSN(), 189*4882a593Smuzhiyun }, 190*4882a593Smuzhiyun .result = ACCEPT, 191*4882a593Smuzhiyun .retval = 0, 192*4882a593Smuzhiyun }, 193*4882a593Smuzhiyun { 194*4882a593Smuzhiyun "masking, test in bounds 1", 195*4882a593Smuzhiyun .insns = { 196*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 4), 197*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 5 - 1), 198*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 199*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 200*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 201*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 202*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 203*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 204*4882a593Smuzhiyun BPF_EXIT_INSN(), 205*4882a593Smuzhiyun }, 206*4882a593Smuzhiyun .result = ACCEPT, 207*4882a593Smuzhiyun .retval = 4, 208*4882a593Smuzhiyun }, 209*4882a593Smuzhiyun { 210*4882a593Smuzhiyun "masking, test in bounds 2", 211*4882a593Smuzhiyun .insns = { 212*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 0), 213*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 214*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 215*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 216*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 217*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 218*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 219*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 220*4882a593Smuzhiyun BPF_EXIT_INSN(), 221*4882a593Smuzhiyun }, 222*4882a593Smuzhiyun .result = ACCEPT, 223*4882a593Smuzhiyun .retval = 0, 224*4882a593Smuzhiyun }, 225*4882a593Smuzhiyun { 226*4882a593Smuzhiyun "masking, test in bounds 3", 227*4882a593Smuzhiyun .insns = { 228*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 0xfffffffe), 229*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 230*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 231*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 232*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 233*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 234*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 235*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 236*4882a593Smuzhiyun BPF_EXIT_INSN(), 237*4882a593Smuzhiyun }, 238*4882a593Smuzhiyun .result = ACCEPT, 239*4882a593Smuzhiyun .retval = 0xfffffffe, 240*4882a593Smuzhiyun }, 241*4882a593Smuzhiyun { 242*4882a593Smuzhiyun "masking, test in bounds 4", 243*4882a593Smuzhiyun .insns = { 244*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 0xabcde), 245*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 0xabcdef - 1), 246*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 247*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 248*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 249*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 250*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 251*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 252*4882a593Smuzhiyun BPF_EXIT_INSN(), 253*4882a593Smuzhiyun }, 254*4882a593Smuzhiyun .result = ACCEPT, 255*4882a593Smuzhiyun .retval = 0xabcde, 256*4882a593Smuzhiyun }, 257*4882a593Smuzhiyun { 258*4882a593Smuzhiyun "masking, test in bounds 5", 259*4882a593Smuzhiyun .insns = { 260*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 0), 261*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 262*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 263*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 264*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 265*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 266*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 267*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 268*4882a593Smuzhiyun BPF_EXIT_INSN(), 269*4882a593Smuzhiyun }, 270*4882a593Smuzhiyun .result = ACCEPT, 271*4882a593Smuzhiyun .retval = 0, 272*4882a593Smuzhiyun }, 273*4882a593Smuzhiyun { 274*4882a593Smuzhiyun "masking, test in bounds 6", 275*4882a593Smuzhiyun .insns = { 276*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_1, 46), 277*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 47 - 1), 278*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 279*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 280*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 281*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 282*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 283*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 284*4882a593Smuzhiyun BPF_EXIT_INSN(), 285*4882a593Smuzhiyun }, 286*4882a593Smuzhiyun .result = ACCEPT, 287*4882a593Smuzhiyun .retval = 46, 288*4882a593Smuzhiyun }, 289*4882a593Smuzhiyun { 290*4882a593Smuzhiyun "masking, test in bounds 7", 291*4882a593Smuzhiyun .insns = { 292*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_3, -46), 293*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, -1), 294*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 47 - 1), 295*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_3), 296*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_3), 297*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 298*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 299*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_3, BPF_REG_2), 300*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_3), 301*4882a593Smuzhiyun BPF_EXIT_INSN(), 302*4882a593Smuzhiyun }, 303*4882a593Smuzhiyun .result = ACCEPT, 304*4882a593Smuzhiyun .retval = 46, 305*4882a593Smuzhiyun }, 306*4882a593Smuzhiyun { 307*4882a593Smuzhiyun "masking, test in bounds 8", 308*4882a593Smuzhiyun .insns = { 309*4882a593Smuzhiyun BPF_MOV64_IMM(BPF_REG_3, -47), 310*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, -1), 311*4882a593Smuzhiyun BPF_MOV32_IMM(BPF_REG_2, 47 - 1), 312*4882a593Smuzhiyun BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_3), 313*4882a593Smuzhiyun BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_3), 314*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 315*4882a593Smuzhiyun BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 316*4882a593Smuzhiyun BPF_ALU64_REG(BPF_AND, BPF_REG_3, BPF_REG_2), 317*4882a593Smuzhiyun BPF_MOV64_REG(BPF_REG_0, BPF_REG_3), 318*4882a593Smuzhiyun BPF_EXIT_INSN(), 319*4882a593Smuzhiyun }, 320*4882a593Smuzhiyun .result = ACCEPT, 321*4882a593Smuzhiyun .retval = 0, 322*4882a593Smuzhiyun }, 323