Commit a71c0b09 authored by Artem Savkov's avatar Artem Savkov Committed by Michael Ellerman

powerpc64/bpf: jit support for unconditional byte swap

Add jit support for unconditional byte swap. Tested using BSWAP tests
from test_bpf module.
Signed-off-by: default avatarArtem Savkov <asavkov@redhat.com>
Reviewed-by: default avatarHari Bathini <hbathini@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240517075650.248801-3-asavkov@redhat.com
parent 3c086ce2
...@@ -699,11 +699,12 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, u32 *fimage, struct code ...@@ -699,11 +699,12 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, u32 *fimage, struct code
*/ */
case BPF_ALU | BPF_END | BPF_FROM_LE: case BPF_ALU | BPF_END | BPF_FROM_LE:
case BPF_ALU | BPF_END | BPF_FROM_BE: case BPF_ALU | BPF_END | BPF_FROM_BE:
case BPF_ALU64 | BPF_END | BPF_FROM_LE:
#ifdef __BIG_ENDIAN__ #ifdef __BIG_ENDIAN__
if (BPF_SRC(code) == BPF_FROM_BE) if (BPF_SRC(code) == BPF_FROM_BE)
goto emit_clear; goto emit_clear;
#else /* !__BIG_ENDIAN__ */ #else /* !__BIG_ENDIAN__ */
if (BPF_SRC(code) == BPF_FROM_LE) if (BPF_CLASS(code) == BPF_ALU && BPF_SRC(code) == BPF_FROM_LE)
goto emit_clear; goto emit_clear;
#endif #endif
switch (imm) { switch (imm) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment