# \[PATCH net-next\] sparc: bpf\_jit\_comp: add XOR instruction for BPF JIT JIT

- From: Daniel Borkmann \<hidden\>
- Date: 2012-09-24 21:57:58 
- List: netdev
- Page: https://ratatoskr.run/netdev/2012/09/10904853
- Thread: https://ratatoskr.run/netdev/2012/09/10904853/t.md

```text
This patch is a follow-up for patch "filter: add XOR instruction for use
with X/K" that implements BPF SPARC JIT parts for the BPF XOR operation.

Signed-off-by: Daniel Borkmann <redacted>
---

 I don't own a SPARC machine. This code is untested and uncompiled, but
 following the other instructions, this should integrate cleanly. Can
 someone confirm that? Thanks.

 arch/sparc/net/bpf_jit_comp.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c
index e9073e9..2836870 100644
--- a/arch/sparc/net/bpf_jit_comp.c
+++ b/arch/sparc/net/bpf_jit_comp.c
@@ -464,8 +464,12 @@ void bpf_jit_compile(struct sk_filter *fp)
 				emit_alu_K(OR, K);
 				break;
 			case BPF_S_ANC_ALU_XOR_X: /* A ^= X; */
+			case BPF_S_ALU_XOR_X:
 				emit_alu_X(XOR);
 				break;
+			case BPF_S_ALU_XOR_K:	/* A ^= K */
+				emit_alu_K(XOR, K);
+				break;
 			case BPF_S_ALU_LSH_X:	/* A <<= X */
 				emit_alu_X(SLL);
 				break;
```
