aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-06-06 13:20:21 -0400
committerDavid S. Miller <davem@davemloft.net>2012-06-06 13:20:21 -0400
commitd7ce8a5f63838d99726ec81f666075d65361325b (patch)
tree20158ca9158040f2b358d98f6b83588d5fbdb313 /arch/sparc/net
parent4bfaddf15bac7afa7048d105864dab65c5d1f9e7 (diff)
sparc bpf_jit: support BPF_S_ANC_ALU_XOR_X instruction
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/net')
-rw-r--r--arch/sparc/net/bpf_jit_comp.c4
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 1a69244e785b..e9073e9501b3 100644
--- 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_)
96#define AND F3(2, 0x01) 96#define AND F3(2, 0x01)
97#define ANDCC F3(2, 0x11) 97#define ANDCC F3(2, 0x11)
98#define OR F3(2, 0x02) 98#define OR F3(2, 0x02)
99#define XOR F3(2, 0x03)
99#define SUB F3(2, 0x04) 100#define SUB F3(2, 0x04)
100#define SUBCC F3(2, 0x14) 101#define SUBCC F3(2, 0x14)
101#define MUL F3(2, 0x0a) /* umul */ 102#define MUL F3(2, 0x0a) /* umul */
@@ -462,6 +463,9 @@ void bpf_jit_compile(struct sk_filter *fp)
462 case BPF_S_ALU_OR_K: /* A |= K */ 463 case BPF_S_ALU_OR_K: /* A |= K */
463 emit_alu_K(OR, K); 464 emit_alu_K(OR, K);
464 break; 465 break;
466 case BPF_S_ANC_ALU_XOR_X: /* A ^= X; */
467 emit_alu_X(XOR);
468 break;
465 case BPF_S_ALU_LSH_X: /* A <<= X */ 469 case BPF_S_ALU_LSH_X: /* A <<= X */
466 emit_alu_X(SLL); 470 emit_alu_X(SLL);
467 break; 471 break;