BPF_JSLE
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
cond == BPF_JSGE || cond == BPF_JSLE;
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
return BPF_JSLE;
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSGT: return BPF_JSLE;
case BPF_JSLE: return BPF_JSGT;
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_X:
return BPF_JSLE;
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JSLE:
cond == BPF_JSGE || cond == BPF_JSLE;
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
return BPF_JSLE;
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JSLE:
cond == BPF_JSGE || cond == BPF_JSLE;
case BPF_JMP | BPF_JSLE | BPF_K: /* ((s64) dst <= (s64) imm) */
case BPF_JMP32 | BPF_JSLE | BPF_K: /* ((s32) dst <= (s32) imm) */
case BPF_JMP | BPF_JSLE | BPF_X: /* ((s64) dst <= (s64) src) */
case BPF_JMP32 | BPF_JSLE | BPF_X: /* ((s32) dst <= (s32) src) */
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JSLE:
case BPF_JSLE:
case BPF_JMP32 | BPF_JSLE | BPF_X:
case BPF_JMP | BPF_JSLE | BPF_X:
case BPF_JMP32 | BPF_JSLE | BPF_K:
case BPF_JMP | BPF_JSLE | BPF_K:
[BPF_JSLE >> 4] = { BR_BGE, true },
[BPF_JMP | BPF_JSLE | BPF_K] = cmp_imm,
[BPF_JMP | BPF_JSLE | BPF_X] = cmp_reg,
[BPF_JMP32 | BPF_JSLE | BPF_K] =cmp_imm,
[BPF_JMP32 | BPF_JSLE | BPF_X] =cmp_reg,
case BPF_JMP | BPF_JSLE | BPF_K:
case BPF_JMP32 | BPF_JSLE | BPF_K:
[BPF_JSLE >> 4] = "s<=",
_J(BPF_JSLE, {.can_jump = true, .can_fallthrough = true}),
case BPF_JSLE:
case BPF_JSLE:
[BPF_JSGE >> 4] = BPF_JSLE,
[BPF_JSLE >> 4] = BPF_JSGE,
case BPF_JSGT: return BPF_JSLE;
case BPF_JSLE: return BPF_JSGT;
case BPF_JSLE:
BPF_JMP_REG(BPF_JSLE, R2, R1, 1),
BPF_JMP_REG(BPF_JSLE, R1, R2, 1),
BPF_JMP32_IMM(BPF_JSLE, R1, S32_MAX, 1),
BPF_JMP_REG(BPF_JSLE, R1, R1, 1),
case BPF_JSLE:
return __bpf_fill_jmp_imm(self, BPF_JSLE);
return __bpf_fill_jmp32_imm(self, BPF_JSLE);
return __bpf_fill_jmp_reg(self, BPF_JSLE);
return __bpf_fill_jmp32_reg(self, BPF_JSLE);
struct bpf_insn jmp = BPF_JMP_IMM(BPF_JSLE, R1, -1, 0);
struct bpf_insn jmp = BPF_JMP_REG(BPF_JSLE, R1, R2, 0);
struct bpf_insn jmp = BPF_JMP32_IMM(BPF_JSLE, R1, -1, 0);
struct bpf_insn jmp = BPF_JMP32_REG(BPF_JSLE, R1, R2, 0);
BPF_JMP32_IMM(BPF_JSLE, R0, -124, 1),
BPF_JMP32_IMM(BPF_JSLE, R0, -123, 1),
BPF_JMP32_IMM(BPF_JSLE, R0, -12345679, 1),
BPF_JMP32_IMM(BPF_JSLE, R0, -12345678, 1),
BPF_JMP32_REG(BPF_JSLE, R0, R1, 2),
BPF_JMP32_REG(BPF_JSLE, R0, R1, 1),
BPF_JMP_IMM(BPF_JSLE, R1, -1, 1),
BPF_JMP_IMM(BPF_JSLE, R1, -1, 1),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 6),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 4),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 2),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 1),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 4),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 2),
BPF_JMP_IMM(BPF_JSLE, R1, 0, 1),
emit(gen, BPF_JMP_IMM(BPF_JSLE, BPF_REG_1, 0, 1));
emit(gen, BPF_JMP_IMM(BPF_JSLE, BPF_REG_1, 0,
[BPF_JSLE >> 4] = "s<=",
case OP_LE: op_code = spec.compare_signed ? BPF_JSLE : BPF_JLE; break;
BPF_JMP32_IMM(BPF_JSLE, BPF_REG_7, -1, 1),
BPF_JMP32_REG(BPF_JSLE, BPF_REG_7, BPF_REG_8, 1),
BPF_JMP32_REG(BPF_JSLE, BPF_REG_7, BPF_REG_8, 1),
BPF_JMP_IMM(BPF_JSLE, BPF_REG_7, 0x7ffffff0, 1),
BPF_JMP_IMM(BPF_JSLE, BPF_REG_3, 0x8000, 1),