]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/ftrace: No need to read LR from stack in _mcount()
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Thu, 28 Oct 2021 12:24:02 +0000 (14:24 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 29 Nov 2021 11:49:29 +0000 (22:49 +1100)
commit9a1f80893bd6835af3b29226eecabf9fc99b7ded
treeb2f867c64cb7256fbbd394dc09af63eb8875a148
parentb8573a69c375e3d6dab20507f6f61cf319d09a81
powerpc/ftrace: No need to read LR from stack in _mcount()

All functions calling _mcount do it exactly the same way, with the
following sequence of instructions:

c07de788:       7c 08 02 a6     mflr    r0
c07de78c:       90 01 00 04     stw     r0,4(r1)
c07de790:       4b 84 13 65     bl      c001faf4 <_mcount>

Allthough LR is pushed on stack, it is still in r0 while entering
_mcount().

Function arguments are in r3-r10, so r11 and r12 are still available
at that point.

Do like PPC64 and use r12 to move LR into CTR, so that r0 is preserved
and doesn't need to be restored from the stack.

While at it, bring back the EXPORT_SYMBOL at the end of _mcount.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/24a3ba7db388537c44a038026f926d885372e6d3.1635423081.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/trace/ftrace_32.S