bpf, x86: detect/optimize loading 0 immediates
authorDaniel Borkmann <daniel@iogearbox.net>
Thu, 17 Dec 2015 22:51:56 +0000 (23:51 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Dec 2015 21:04:51 +0000 (16:04 -0500)
commit606c88a86c77fa27cb4eac899ddced9092825bea
tree6912e097e8e74ca15f8567739eb4b215845f6bc7
parent23bf88078afdb8f9b8071dd9f32754ebab7ba3dc
bpf, x86: detect/optimize loading 0 immediates

When sometimes structs or variables need to be initialized/'memset' to 0 in
an eBPF C program, the x86 BPF JIT converts this to use immediates. We can
however save a couple of bytes (f.e. even up to 7 bytes on a single emmission
of BPF_LD | BPF_IMM | BPF_DW) in the image by detecting such case and use xor
on the dst register instead.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/x86/net/bpf_jit_comp.c