Le 27/07/2021 à 08:55, Jordan Niethe a écrit :
Implement commit 40272035e1d0 ("powerpc/bpf: Reallocate BPF registers to
volatile registers when possible on PPC32") for PPC64.

When the BPF routine doesn't call any function, the non volatile
registers can be reallocated to volatile registers in order to avoid
having to save them/restore on the stack. To keep track of which
registers can be reallocated to make sure registers are set seen when
used.

Before this patch, the test #359 ADD default X is:
    0:   nop
    4:   nop
    8:   std     r27,-40(r1)
    c:   std     r28,-32(r1)
   10:   xor     r8,r8,r8
   14:   rotlwi  r8,r8,0
   18:   xor     r28,r28,r28
   1c:   rotlwi  r28,r28,0
   20:   mr      r27,r3
   24:   li      r8,66
   28:   add     r8,r8,r28
   2c:   rotlwi  r8,r8,0
   30:   ld      r27,-40(r1)
   34:   ld      r28,-32(r1)
   38:   mr      r3,r8
   3c:   blr

After this patch, the same test has become:
    0:   nop
    4:   nop
    8:   xor     r8,r8,r8
    c:   rotlwi  r8,r8,0
   10:   xor     r5,r5,r5
   14:   rotlwi  r5,r5,0
   18:   mr      r4,r3
   1c:   li      r8,66
   20:   add     r8,r8,r5
   24:   rotlwi  r8,r8,0
   28:   mr      r3,r8
   2c:   blr

Signed-off-by: Jordan Niethe <jniet...@gmail.com>

If this series is still applicable, it needs to be rebased of Naveen's series https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=286000

Christophe

Reply via email to