arm64: bpf: optimize LD_ABS, LD_IND
authorZi Shen Lim <zlim.lnx@gmail.com>
Thu, 9 Jun 2016 04:18:50 +0000 (21:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 11 Jun 2016 06:11:50 +0000 (23:11 -0700)
Remove superfluous stack frame, saving us 3 instructions for every
LD_ABS or LD_IND.

Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/arm64/net/bpf_jit_comp.c

index 7ae304e0a0786c9655cd07e89d75c392bb741a49..b2fc97a2c56c80fe633777bbb18322c980949953 100644 (file)
@@ -731,11 +731,8 @@ emit_cond_jmp:
                emit_a64_mov_i64(r3, size, ctx);
                emit(A64_SUB_I(1, r4, fp, STACK_SIZE), ctx);
                emit_a64_mov_i64(r5, (unsigned long)bpf_load_pointer, ctx);
-               emit(A64_PUSH(A64_FP, A64_LR, A64_SP), ctx);
-               emit(A64_MOV(1, A64_FP, A64_SP), ctx);
                emit(A64_BLR(r5), ctx);
                emit(A64_MOV(1, r0, A64_R(0)), ctx);
-               emit(A64_POP(A64_FP, A64_LR, A64_SP), ctx);
 
                jmp_offset = epilogue_offset(ctx);
                check_imm19(jmp_offset);