Re: [PATCH v4] bpf, x86_32: add eBPF JIT compiler for ia32

2018-04-27 Thread Daniel Borkmann
On 04/26/2018 12:12 PM, Wang YanQing wrote: [...] > +/* encode 'dst_reg' and 'src_reg' registers into x86_32 opcode 'byte' */ > +static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg) > +{ > + return byte + dst_reg + (src_reg << 3); > +} > + > +static void jit_fill_hole(void *area, unsigned int

[PATCH v4] bpf, x86_32: add eBPF JIT compiler for ia32

2018-04-26 Thread Wang YanQing
The JIT compiler emits ia32 bit instructions. Currently, It supports eBPF only. Classic BPF is supported because of the conversion by BPF core. Almost all instructions from eBPF ISA supported except the following: BPF_ALU64 | BPF_DIV | BPF_K BPF_ALU64 | BPF_DIV | BPF_X BPF_ALU64 | BPF_MOD | BPF_K