[PATCH net-next] x86 bpf_jit: support BPF_S_ANC_ALU_XOR_X instruction

Subsystems: bpf jit for x86 64-bit, bpf [general] (safe dynamic programs and tools), the rest, x86 architecture (32-bit and 64-bit)

STALE5192d

2 messages, 2 authors, 2012-06-06 · open the first message on its own page

[PATCH net-next] x86 bpf_jit: support BPF_S_ANC_ALU_XOR_X instruction

From: Eric Dumazet <hidden>
Date: 2012-06-05 07:26:35

From: Eric Dumazet <edumazet@google.com>

commit ffe06c17afbb  (filter: add XOR operation) added generic support
for XOR operation.

This patch implements the XOR instruction in x86 jit.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jiri Pirko <redacted>
---
 arch/x86/net/bpf_jit_comp.c |    4 ++++
 1 file changed, 4 insertions(+)
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index 0597f95..2cf6ce3 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -309,6 +309,10 @@ void bpf_jit_compile(struct sk_filter *fp)
 				else
 					EMIT1_off32(0x0d, K);	/* or imm32,%eax */
 				break;
+			case BPF_S_ANC_ALU_XOR_X: /* A ^= X; */
+				seen |= SEEN_XREG;
+				EMIT2(0x31, 0xd8);		/* xor %ebx,%eax */
+				break;
 			case BPF_S_ALU_LSH_X: /* A <<= X; */
 				seen |= SEEN_XREG;
 				EMIT4(0x89, 0xd9, 0xd3, 0xe0);	/* mov %ebx,%ecx; shl %cl,%eax */

Re: [PATCH net-next] x86 bpf_jit: support BPF_S_ANC_ALU_XOR_X instruction

From: David Miller <davem@davemloft.net>
Date: 2012-06-06 16:44:48

From: Eric Dumazet <redacted>
Date: Tue, 05 Jun 2012 09:26:30 +0200
From: Eric Dumazet <edumazet@google.com>

commit ffe06c17afbb  (filter: add XOR operation) added generic support
for XOR operation.

This patch implements the XOR instruction in x86 jit.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jiri Pirko <redacted>
Applied, thanks Eric.  I'll take care of Sparc.

ARM and POWERPC folks, this is just a reminder for you guys
to do this too.  Adding support for XOR to your JITs ought to
be quite trivial.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help