projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4bfaddf
)
sparc bpf_jit: support BPF_S_ANC_ALU_XOR_X instruction
author
David S. Miller
<davem@davemloft.net>
Wed, 6 Jun 2012 17:20:21 +0000
(10:20 -0700)
committer
David S. Miller
<davem@davemloft.net>
Wed, 6 Jun 2012 17:20:21 +0000
(10:20 -0700)
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/net/bpf_jit_comp.c
patch
|
blob
|
history
diff --git
a/arch/sparc/net/bpf_jit_comp.c
b/arch/sparc/net/bpf_jit_comp.c
index 1a69244e785b4df215ffc68c7befd47905531dda..e9073e9501b37792e5e6941253b6c13f601102c3 100644
(file)
--- a/
arch/sparc/net/bpf_jit_comp.c
+++ b/
arch/sparc/net/bpf_jit_comp.c
@@
-96,6
+96,7
@@
static void bpf_flush_icache(void *start_, void *end_)
#define AND F3(2, 0x01)
#define ANDCC F3(2, 0x11)
#define OR F3(2, 0x02)
+#define XOR F3(2, 0x03)
#define SUB F3(2, 0x04)
#define SUBCC F3(2, 0x14)
#define MUL F3(2, 0x0a) /* umul */
@@
-462,6
+463,9
@@
void bpf_jit_compile(struct sk_filter *fp)
case BPF_S_ALU_OR_K: /* A |= K */
emit_alu_K(OR, K);
break;
+ case BPF_S_ANC_ALU_XOR_X: /* A ^= X; */
+ emit_alu_X(XOR);
+ break;
case BPF_S_ALU_LSH_X: /* A <<= X */
emit_alu_X(SLL);
break;