Message ID | 20120924173450.GA28969@thinkbox |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Mon, 2012-09-24 at 19:34 +0200, Daniel Borkmann wrote: > This patch is a follow-up for patch "filter: add XOR instruction for use > with X/K" that implements BPF x86 JIT parts for the BPF XOR operation. > > Signed-off-by: Daniel Borkmann <daniel.borkmann@tik.ee.ethz.ch> > --- > arch/x86/net/bpf_jit_comp.c | 9 +++++++++ > 1 files changed, 9 insertions(+), 0 deletions(-) Acked-by: Eric Dumazet <edumazet@google.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Mon, 24 Sep 2012 19:44:07 +0200 > On Mon, 2012-09-24 at 19:34 +0200, Daniel Borkmann wrote: >> This patch is a follow-up for patch "filter: add XOR instruction for use >> with X/K" that implements BPF x86 JIT parts for the BPF XOR operation. >> >> Signed-off-by: Daniel Borkmann <daniel.borkmann@tik.ee.ethz.ch> >> --- >> arch/x86/net/bpf_jit_comp.c | 9 +++++++++ >> 1 files changed, 9 insertions(+), 0 deletions(-) > > Acked-by: Eric Dumazet <edumazet@google.com> Applied, thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c index 106c578..520d2bd 100644 --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c @@ -335,9 +335,18 @@ void bpf_jit_compile(struct sk_filter *fp) EMIT1_off32(0x0d, K); /* or imm32,%eax */ break; case BPF_S_ANC_ALU_XOR_X: /* A ^= X; */ + case BPF_S_ALU_XOR_X: seen |= SEEN_XREG; EMIT2(0x31, 0xd8); /* xor %ebx,%eax */ break; + case BPF_S_ALU_XOR_K: /* A ^= K; */ + if (K == 0) + break; + if (is_imm8(K)) + EMIT3(0x83, 0xf0, K); /* xor imm8,%eax */ + else + EMIT1_off32(0x35, K); /* xor imm32,%eax */ + break; case BPF_S_ALU_LSH_X: /* A <<= X; */ seen |= SEEN_XREG; EMIT4(0x89, 0xd9, 0xd3, 0xe0); /* mov %ebx,%ecx; shl %cl,%eax */
This patch is a follow-up for patch "filter: add XOR instruction for use with X/K" that implements BPF x86 JIT parts for the BPF XOR operation. Signed-off-by: Daniel Borkmann <daniel.borkmann@tik.ee.ethz.ch> --- arch/x86/net/bpf_jit_comp.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html