18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "jit: lsh, rsh, arsh by 1", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 58c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 0xff), 68c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_LSH, BPF_REG_1, 1), 78c2ecf20Sopenharmony_ci BPF_ALU32_IMM(BPF_LSH, BPF_REG_1, 1), 88c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x3fc, 1), 98c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 108c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 1), 118c2ecf20Sopenharmony_ci BPF_ALU32_IMM(BPF_RSH, BPF_REG_1, 1), 128c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0xff, 1), 138c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 148c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_1, 1), 158c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x7f, 1), 168c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 178c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 188c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 198c2ecf20Sopenharmony_ci }, 208c2ecf20Sopenharmony_ci .result = ACCEPT, 218c2ecf20Sopenharmony_ci .retval = 2, 228c2ecf20Sopenharmony_ci}, 238c2ecf20Sopenharmony_ci{ 248c2ecf20Sopenharmony_ci "jit: mov32 for ldimm64, 1", 258c2ecf20Sopenharmony_ci .insns = { 268c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 278c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xfeffffffffffffffULL), 288c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 32), 298c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_2, 0xfeffffffULL), 308c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1), 318c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 328c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 338c2ecf20Sopenharmony_ci }, 348c2ecf20Sopenharmony_ci .result = ACCEPT, 358c2ecf20Sopenharmony_ci .retval = 2, 368c2ecf20Sopenharmony_ci}, 378c2ecf20Sopenharmony_ci{ 388c2ecf20Sopenharmony_ci "jit: mov32 for ldimm64, 2", 398c2ecf20Sopenharmony_ci .insns = { 408c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 418c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0x1ffffffffULL), 428c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_2, 0xffffffffULL), 438c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1), 448c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 458c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 468c2ecf20Sopenharmony_ci }, 478c2ecf20Sopenharmony_ci .result = ACCEPT, 488c2ecf20Sopenharmony_ci .retval = 2, 498c2ecf20Sopenharmony_ci}, 508c2ecf20Sopenharmony_ci{ 518c2ecf20Sopenharmony_ci "jit: various mul tests", 528c2ecf20Sopenharmony_ci .insns = { 538c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_2, 0xeeff0d413122ULL), 548c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL), 558c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xefefefULL), 568c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_MUL, BPF_REG_0, BPF_REG_1), 578c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2), 588c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 598c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 608c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL), 618c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_MUL, BPF_REG_3, BPF_REG_1), 628c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2), 638c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 648c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 658c2ecf20Sopenharmony_ci BPF_MOV32_REG(BPF_REG_2, BPF_REG_2), 668c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL), 678c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MUL, BPF_REG_0, BPF_REG_1), 688c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2), 698c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 708c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 718c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL), 728c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MUL, BPF_REG_3, BPF_REG_1), 738c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2), 748c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 758c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 768c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_0, 0x952a7bbcULL), 778c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xfefefeULL), 788c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_2, 0xeeff0d413122ULL), 798c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MUL, BPF_REG_2, BPF_REG_1), 808c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JEQ, BPF_REG_2, BPF_REG_0, 2), 818c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 828c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 838c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 848c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 858c2ecf20Sopenharmony_ci }, 868c2ecf20Sopenharmony_ci .result = ACCEPT, 878c2ecf20Sopenharmony_ci .retval = 2, 888c2ecf20Sopenharmony_ci}, 898c2ecf20Sopenharmony_ci{ 908c2ecf20Sopenharmony_ci "jit: jsgt, jslt", 918c2ecf20Sopenharmony_ci .insns = { 928c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0x80000000ULL), 938c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_2, 0x0ULL), 948c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JSGT, BPF_REG_1, BPF_REG_2, 2), 958c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 968c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JSLT, BPF_REG_2, BPF_REG_1, 2), 998c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 1008c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 1038c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1048c2ecf20Sopenharmony_ci }, 1058c2ecf20Sopenharmony_ci .result = ACCEPT, 1068c2ecf20Sopenharmony_ci .retval = 2, 1078c2ecf20Sopenharmony_ci}, 108