diff options
| author | David S. Miller <davem@davemloft.net> | 2012-06-06 13:20:21 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-06-06 13:20:21 -0400 |
| commit | d7ce8a5f63838d99726ec81f666075d65361325b (patch) | |
| tree | 20158ca9158040f2b358d98f6b83588d5fbdb313 | |
| parent | 4bfaddf15bac7afa7048d105864dab65c5d1f9e7 (diff) | |
sparc bpf_jit: support BPF_S_ANC_ALU_XOR_X instruction
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | 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 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; |
