bpf, arm32: fix inconsistent naming about emit_a32_lsr_{r64,i64}
The names for BPF_ALU64 | BPF_ARSH are emit_a32_arsh_*,
the names for BPF_ALU64 | BPF_LSH are emit_a32_lsh_*, but
the names for BPF_ALU64 | BPF_RSH are emit_a32_lsr_*.
For consistence reason, let's rename emit_a32_lsr_* to
emit_a32_rsh_*.
This patch also corrects a wrong comment.
Fixes: 39c13c204b ("arm: eBPF JIT compiler")
Signed-off-by: Wang YanQing <udknight@gmail.com>
Cc: Shubham Bansal <illusionist.neo@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux@armlinux.org.uk
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
committed by
Daniel Borkmann
parent
2b589a7e2b
commit
68565a1af9
@@ -701,7 +701,7 @@ static inline void emit_a32_arsh_r64(const u8 dst[], const u8 src[], bool dstk,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* dst = dst >> src */
|
/* dst = dst >> src */
|
||||||
static inline void emit_a32_lsr_r64(const u8 dst[], const u8 src[], bool dstk,
|
static inline void emit_a32_rsh_r64(const u8 dst[], const u8 src[], bool dstk,
|
||||||
bool sstk, struct jit_ctx *ctx) {
|
bool sstk, struct jit_ctx *ctx) {
|
||||||
const u8 *tmp = bpf2a32[TMP_REG_1];
|
const u8 *tmp = bpf2a32[TMP_REG_1];
|
||||||
const u8 *tmp2 = bpf2a32[TMP_REG_2];
|
const u8 *tmp2 = bpf2a32[TMP_REG_2];
|
||||||
@@ -717,7 +717,7 @@ static inline void emit_a32_lsr_r64(const u8 dst[], const u8 src[], bool dstk,
|
|||||||
emit(ARM_LDR_I(rm, ARM_SP, STACK_VAR(dst_hi)), ctx);
|
emit(ARM_LDR_I(rm, ARM_SP, STACK_VAR(dst_hi)), ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Do LSH operation */
|
/* Do RSH operation */
|
||||||
emit(ARM_RSB_I(ARM_IP, rt, 32), ctx);
|
emit(ARM_RSB_I(ARM_IP, rt, 32), ctx);
|
||||||
emit(ARM_SUBS_I(tmp2[0], rt, 32), ctx);
|
emit(ARM_SUBS_I(tmp2[0], rt, 32), ctx);
|
||||||
emit(ARM_MOV_SR(ARM_LR, rd, SRTYPE_LSR, rt), ctx);
|
emit(ARM_MOV_SR(ARM_LR, rd, SRTYPE_LSR, rt), ctx);
|
||||||
@@ -767,7 +767,7 @@ static inline void emit_a32_lsh_i64(const u8 dst[], bool dstk,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* dst = dst >> val */
|
/* dst = dst >> val */
|
||||||
static inline void emit_a32_lsr_i64(const u8 dst[], bool dstk,
|
static inline void emit_a32_rsh_i64(const u8 dst[], bool dstk,
|
||||||
const u32 val, struct jit_ctx *ctx) {
|
const u32 val, struct jit_ctx *ctx) {
|
||||||
const u8 *tmp = bpf2a32[TMP_REG_1];
|
const u8 *tmp = bpf2a32[TMP_REG_1];
|
||||||
const u8 *tmp2 = bpf2a32[TMP_REG_2];
|
const u8 *tmp2 = bpf2a32[TMP_REG_2];
|
||||||
@@ -1323,7 +1323,7 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
|
|||||||
case BPF_ALU64 | BPF_RSH | BPF_K:
|
case BPF_ALU64 | BPF_RSH | BPF_K:
|
||||||
if (unlikely(imm > 63))
|
if (unlikely(imm > 63))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
emit_a32_lsr_i64(dst, dstk, imm, ctx);
|
emit_a32_rsh_i64(dst, dstk, imm, ctx);
|
||||||
break;
|
break;
|
||||||
/* dst = dst << src */
|
/* dst = dst << src */
|
||||||
case BPF_ALU64 | BPF_LSH | BPF_X:
|
case BPF_ALU64 | BPF_LSH | BPF_X:
|
||||||
@@ -1331,7 +1331,7 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
|
|||||||
break;
|
break;
|
||||||
/* dst = dst >> src */
|
/* dst = dst >> src */
|
||||||
case BPF_ALU64 | BPF_RSH | BPF_X:
|
case BPF_ALU64 | BPF_RSH | BPF_X:
|
||||||
emit_a32_lsr_r64(dst, src, dstk, sstk, ctx);
|
emit_a32_rsh_r64(dst, src, dstk, sstk, ctx);
|
||||||
break;
|
break;
|
||||||
/* dst = dst >> src (signed) */
|
/* dst = dst >> src (signed) */
|
||||||
case BPF_ALU64 | BPF_ARSH | BPF_X:
|
case BPF_ALU64 | BPF_ARSH | BPF_X:
|
||||||
|
|||||||
Reference in New Issue
Block a user