mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
x86: bpf_jit_comp: Reduce is_ereg() code size
Use the (1 << reg) & mask trick to reduce code size. x86-64 size difference -O2 without profiling for various gcc versions: $ size arch/x86/net/bpf_jit_comp.o* text data bss dec hex filename 9266 4 0 9270 2436 arch/x86/net/bpf_jit_comp.o.4.4.new 10042 4 0 10046 273e arch/x86/net/bpf_jit_comp.o.4.4.old 9109 4 0 9113 2399 arch/x86/net/bpf_jit_comp.o.4.6.new 9717 4 0 9721 25f9 arch/x86/net/bpf_jit_comp.o.4.6.old 8789 4 0 8793 2259 arch/x86/net/bpf_jit_comp.o.4.7.new 10245 4 0 10249 2809 arch/x86/net/bpf_jit_comp.o.4.7.old 9671 4 0 9675 25cb arch/x86/net/bpf_jit_comp.o.4.9.new 10679 4 0 10683 29bb arch/x86/net/bpf_jit_comp.o.4.9.old Signed-off-by: Joe Perches <joe@perches.com> Tested-by: Alexei Starovoitov <ast@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
57d743a3de
commit
d148134be5
@ -135,11 +135,11 @@ static const int reg2hex[] = {
|
||||
*/
|
||||
static inline bool is_ereg(u32 reg)
|
||||
{
|
||||
if (reg == BPF_REG_5 || reg == AUX_REG ||
|
||||
(reg >= BPF_REG_7 && reg <= BPF_REG_9))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
return (1 << reg) & (BIT(BPF_REG_5) |
|
||||
BIT(AUX_REG) |
|
||||
BIT(BPF_REG_7) |
|
||||
BIT(BPF_REG_8) |
|
||||
BIT(BPF_REG_9));
|
||||
}
|
||||
|
||||
/* add modifiers if 'reg' maps to x64 registers r8..r15 */
|
||||
|
Loading…
Reference in New Issue
Block a user