bpf, sparc64: remove obsolete exception handling from div/mod
authorDaniel Borkmann <[email protected]>
Fri, 26 Jan 2018 22:33:44 +0000 (23:33 +0100)
committerAlexei Starovoitov <[email protected]>
Sat, 27 Jan 2018 00:42:06 +0000 (16:42 -0800)
Since we've changed div/mod exception handling for src_reg in
eBPF verifier itself, remove the leftovers from sparc64 JIT.

Signed-off-by: Daniel Borkmann <[email protected]>
Cc: David S. Miller <[email protected]>
Signed-off-by: Alexei Starovoitov <[email protected]>
arch/sparc/net/bpf_jit_comp_64.c

index 50a24d7bd4c5c4b3ca46f4459ada8f89895b3cb7..48a25869349be70e4505e2f1d72d55cc4fab88a1 100644 (file)
@@ -967,31 +967,17 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
                emit_alu(MULX, src, dst, ctx);
                break;
        case BPF_ALU | BPF_DIV | BPF_X:
-               emit_cmp(src, G0, ctx);
-               emit_branch(BE|ANNUL, ctx->idx, ctx->epilogue_offset, ctx);
-               emit_loadimm(0, bpf2sparc[BPF_REG_0], ctx);
-
                emit_write_y(G0, ctx);
                emit_alu(DIV, src, dst, ctx);
                break;
-
        case BPF_ALU64 | BPF_DIV | BPF_X:
-               emit_cmp(src, G0, ctx);
-               emit_branch(BE|ANNUL, ctx->idx, ctx->epilogue_offset, ctx);
-               emit_loadimm(0, bpf2sparc[BPF_REG_0], ctx);
-
                emit_alu(UDIVX, src, dst, ctx);
                break;
-
        case BPF_ALU | BPF_MOD | BPF_X: {
                const u8 tmp = bpf2sparc[TMP_REG_1];
 
                ctx->tmp_1_used = true;
 
-               emit_cmp(src, G0, ctx);
-               emit_branch(BE|ANNUL, ctx->idx, ctx->epilogue_offset, ctx);
-               emit_loadimm(0, bpf2sparc[BPF_REG_0], ctx);
-
                emit_write_y(G0, ctx);
                emit_alu3(DIV, dst, src, tmp, ctx);
                emit_alu3(MULX, tmp, src, tmp, ctx);
@@ -1003,10 +989,6 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
 
                ctx->tmp_1_used = true;
 
-               emit_cmp(src, G0, ctx);
-               emit_branch(BE|ANNUL, ctx->idx, ctx->epilogue_offset, ctx);
-               emit_loadimm(0, bpf2sparc[BPF_REG_0], ctx);
-
                emit_alu3(UDIVX, dst, src, tmp, ctx);
                emit_alu3(MULX, tmp, src, tmp, ctx);
                emit_alu3(SUB, dst, tmp, dst, ctx);