BPF_JMP_REG
*to++ = BPF_JMP_REG(from->code, from->dst_reg, BPF_REG_AX, off);
insn_buf[cnt++] = BPF_JMP_REG(BPF_JGE, reg_loop_cnt, reg_loop_max, 5);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 1);
BPF_JMP_REG(BPF_JSGT, R1, R2, 1),
BPF_JMP_REG(BPF_JSGT, R1, R2, 1),
BPF_JMP_REG(BPF_JSLT, R2, R1, 1),
BPF_JMP_REG(BPF_JSLT, R1, R2, 1),
BPF_JMP_REG(BPF_JSGE, R1, R2, 1),
BPF_JMP_REG(BPF_JSGE, R1, R2, 1),
BPF_JMP_REG(BPF_JSLE, R2, R1, 1),
BPF_JMP_REG(BPF_JSLE, R1, R2, 1),
BPF_JMP_REG(BPF_JGT, R1, R2, 1),
BPF_JMP_REG(BPF_JGT, R1, R2, 1),
BPF_JMP_REG(BPF_JLT, R2, R1, 1),
BPF_JMP_REG(BPF_JLT, R2, R1, 1),
BPF_JMP_REG(BPF_JGE, R1, R2, 1),
BPF_JMP_REG(BPF_JGE, R1, R2, 1),
BPF_JMP_REG(BPF_JLE, R2, R1, 1),
BPF_JMP_REG(BPF_JLE, R1, R2, 1),
BPF_JMP_REG(BPF_JGE, R1, R2, 2),
BPF_JMP_REG(BPF_JGE, R1, R2, 0),
BPF_JMP_REG(BPF_JGE, R1, R2, 4),
BPF_JMP_REG(BPF_JLE, R2, R1, 2),
BPF_JMP_REG(BPF_JLE, R2, R1, 0),
BPF_JMP_REG(BPF_JLE, R2, R1, 4),
BPF_JMP_REG(BPF_JNE, R1, R2, 1),
BPF_JMP_REG(BPF_JEQ, R1, R2, 1),
BPF_JMP_REG(BPF_JSET, R1, R2, 1),
BPF_JMP_REG(BPF_JSET, R1, R2, 1),
BPF_JMP_REG(BPF_JNE, R2, R4, 1),
BPF_JMP_REG(BPF_JEQ, R1, R1, 1),
BPF_JMP_REG(BPF_JGE, R1, R1, 1),
BPF_JMP_REG(BPF_JLE, R1, R1, 1),
BPF_JMP_REG(BPF_JSGE, R1, R1, 1),
BPF_JMP_REG(BPF_JSLE, R1, R1, 1),
BPF_JMP_REG(BPF_JNE, R1, R1, 1),
BPF_JMP_REG(BPF_JGT, R1, R1, 1),
BPF_JMP_REG(BPF_JLT, R1, R1, 1),
BPF_JMP_REG(BPF_JSGT, R1, R1, 1),
BPF_JMP_REG(BPF_JSLT, R1, R1, 1),
BPF_JMP_REG(BPF_JNE, R0, R1, 3),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R2, R4, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R0, R5, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R2, R4, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R0, R5, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 2);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R0, R3, 2);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R2, R3, 2);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R0, R1, 2);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R0, R3, 2);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R0, R1, 2);
insn[i++] = BPF_JMP_REG(BPF_JEQ, rd, R10, 2);
insn[i++] = BPF_JMP_REG(BPF_JEQ, R0, R1, 2);
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R2, 1);
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R2, 1);
insns[i++] = BPF_JMP_REG(op, R1, R2, 1);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JEQ, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JNE, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JSET, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JGT, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JGE, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JLT, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JLE, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JSGT, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JSGE, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JSLT, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JSLE, R1, R2, 0);
BPF_JMP_REG(BPF_JEQ, R0, R1, 1),
BPF_JMP_REG(BPF_JEQ, R1, R2, 1),
BPF_JMP_REG(BPF_JEQ, R2, R3, 1),
BPF_JMP_REG(BPF_JEQ, R3, R4, 1),
BPF_JMP_REG(BPF_JEQ, R5, R4, 1),
BPF_JMP_REG(BPF_JEQ, R5, R6, 1),
BPF_JMP_REG(BPF_JEQ, R7, R6, 1),
BPF_JMP_REG(BPF_JEQ, R7, R8, 1),
BPF_JMP_REG(BPF_JEQ, R9, R8, 1),
BPF_JMP_REG(BPF_JEQ, R9, R0, 1),
BPF_JMP_REG(BPF_JEQ, R9, R0, 2),
BPF_JMP_REG(BPF_JEQ, R0, R4, 1),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R1, 2),
BPF_JMP_REG(BPF_JEQ, R0, R2, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R4, 1);
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
BPF_JMP_REG(BPF_JEQ, R0, R1, 2),
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R2, 1);
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R1, 1),
BPF_JMP_REG(BPF_JNE, R0, R1, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JNE, R0, R3, 1),
BPF_JMP_REG(BPF_JEQ, R2, R3, 2),
BPF_JMP_REG(BPF_JNE, R0, R1, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
BPF_JMP_REG(BPF_JNE, R0, R1, 1),
BPF_JMP_REG(BPF_JNE, R0, R1, 1),
BPF_JMP_REG(BPF_JNE, R0, R2, 1),
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 1);
insns[i++] = BPF_JMP_REG(BPF_JEQ, R1, R3, 1);
emit(gen, BPF_JMP_REG(BPF_JNE, BPF_REG_2, BPF_REG_3, off));
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_0, 1), \
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
BPF_JMP_REG(BPF_JGE, BPF_REG_3, BPF_REG_4, 1),
emit(BPF_JMP_REG(op_code, BPF_REG_6, BPF_REG_7, 3));
emit(BPF_JMP_REG(spec.setup_signed ? BPF_JSLT : BPF_JLT,
emit(BPF_JMP_REG(spec.setup_signed ? BPF_JSGT : BPF_JGT,
emit(BPF_JMP_REG(spec.setup_signed ? BPF_JSLT : BPF_JLT,
emit(BPF_JMP_REG(spec.setup_signed ? BPF_JSGT : BPF_JGT,
BPF_JMP_REG(BPF_JGT, BPF_REG_6, BPF_REG_7, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_6, BPF_REG_7, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_6, BPF_REG_7, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_6, BPF_REG_7, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_7, BPF_REG_8, 4),
BPF_JMP_REG(BPF_JGT, BPF_REG_7, BPF_REG_8, 4),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 10),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 6),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 6),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 10),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 6),
BPF_JMP_REG(BPF_JNE, BPF_REG_8, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JLE, BPF_REG_4, BPF_REG_3, 1), \
BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_1, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_2, BPF_REG_1, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 2),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 2),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 3),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 2),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 3),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 3),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 3),
BPF_JMP_REG(BPF_JLE, BPF_REG_0, BPF_REG_3, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 3),
BPF_JMP_REG(BPF_JLE, BPF_REG_0, BPF_REG_3, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 2),
BPF_JMP_REG(BPF_JSGT, BPF_REG_0, BPF_REG_0, 0),
BPF_JMP_REG(BPF_JGT, BPF_REG_6, BPF_REG_7, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_2, BPF_REG_1, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_2, BPF_REG_1, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_2, BPF_REG_1, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_8, BPF_REG_7, 2),
BPF_JMP_REG(BPF_JGT, BPF_REG_3, BPF_REG_2, 2), // 5. if r3 > r2 goto 8
BPF_JMP_REG(BPF_JGT, BPF_REG_3, BPF_REG_2, 1), // 8. if r3 > r2 goto 10
BPF_JMP_REG(BPF_JGT, BPF_REG_3, BPF_REG_2, 2), // 5. if r3 > r2 goto 8
BPF_JMP_REG(BPF_JLT, BPF_REG_2, BPF_REG_3, 1), // 8. if r2 < r3 goto 10
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 1),
BPF_JMP_REG(BPF_JGT, BPF_REG_0, BPF_REG_3, 4),
BPF_JMP_REG(BPF_JGT, BPF_REG_1, BPF_REG_3, 1),
BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_5, BPF_REG_0, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JSGT, BPF_REG_1, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JSLT, BPF_REG_2, BPF_REG_1, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),
BPF_JMP_REG(BPF_JSET, BPF_REG_7, BPF_REG_8, 1),
BPF_JMP_REG(BPF_JSET, BPF_REG_7, BPF_REG_8, 1),
BPF_JMP_REG(BPF_JSET, BPF_REG_7, BPF_REG_8, 1),
BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),
BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),
BPF_JMP_REG(BPF_JGT, BPF_REG_4, BPF_REG_0, 0),
BPF_JMP_REG(BPF_JGT, BPF_REG_4, BPF_REG_0, 0),
BPF_JMP_REG(BPF_JLE, BPF_REG_6, BPF_REG_9, 2),
BPF_JMP_REG(BPF_JLE, BPF_REG_6, BPF_REG_9, 1),