From: Jakub Kicinski Date: Mon, 23 Oct 2017 18:58:06 +0000 (-0700) Subject: nfp: bpf: add helper for emitting nops X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=ff42bb9fe3091d996c763848afa3e57c2a780217;p=openwrt%2Fstaging%2Fblogic.git nfp: bpf: add helper for emitting nops The need to emitting a few nops will become more common soon as we add stack and map support. Add a helper. This allows for code to be shorter but also may be handy for marking the nops with a "reason" to ease applying optimizations. Signed-off-by: Jakub Kicinski Reviewed-by: Quentin Monnet Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/netronome/nfp/bpf/jit.c b/drivers/net/ethernet/netronome/nfp/bpf/jit.c index 23fb11a41cc4..eb8c905936ac 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/jit.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/jit.c @@ -494,6 +494,12 @@ static swreg re_load_imm_any(struct nfp_prog *nfp_prog, u32 imm, swreg tmp_reg) return tmp_reg; } +static void wrp_nops(struct nfp_prog *nfp_prog, unsigned int count) +{ + while (count--) + emit_nop(nfp_prog); +} + static void wrp_br_special(struct nfp_prog *nfp_prog, enum br_mask mask, enum br_special special) @@ -1799,7 +1805,7 @@ static void nfp_outro(struct nfp_prog *nfp_prog) static int nfp_translate(struct nfp_prog *nfp_prog) { struct nfp_insn_meta *meta; - int i, err; + int err; nfp_intro(nfp_prog); if (nfp_prog->error) @@ -1831,8 +1837,7 @@ static int nfp_translate(struct nfp_prog *nfp_prog) if (nfp_prog->error) return nfp_prog->error; - for (i = 0; i < NFP_USTORE_PREFETCH_WINDOW; i++) - emit_nop(nfp_prog); + wrp_nops(nfp_prog, NFP_USTORE_PREFETCH_WINDOW); if (nfp_prog->error) return nfp_prog->error;