mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
powerpc/vdso: Save and restore TOC pointer on PPC64
On PPC64, the TOC pointer needs to be saved and restored. Suggested-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20201126131006.2431205-7-mpe@ellerman.id.au
This commit is contained in:
parent
ce7d8056e3
commit
7fec9f5d41
|
|
@ -19,10 +19,16 @@
|
|||
.cfi_register lr, r0
|
||||
PPC_STLU r1, -PPC_MIN_STKFRM(r1)
|
||||
PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1)
|
||||
#ifdef __powerpc64__
|
||||
PPC_STL r2, PPC_MIN_STKFRM + STK_GOT(r1)
|
||||
#endif
|
||||
get_datapage r5, r0
|
||||
addi r5, r5, VDSO_DATA_OFFSET
|
||||
bl DOTSYM(\funct)
|
||||
PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1)
|
||||
#ifdef __powerpc64__
|
||||
PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1)
|
||||
#endif
|
||||
cmpwi r3, 0
|
||||
mtlr r0
|
||||
.cfi_restore lr
|
||||
|
|
@ -42,10 +48,16 @@
|
|||
.cfi_register lr, r0
|
||||
PPC_STLU r1, -PPC_MIN_STKFRM(r1)
|
||||
PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1)
|
||||
#ifdef __powerpc64__
|
||||
PPC_STL r2, PPC_MIN_STKFRM + STK_GOT(r1)
|
||||
#endif
|
||||
get_datapage r4, r0
|
||||
addi r4, r4, VDSO_DATA_OFFSET
|
||||
bl DOTSYM(\funct)
|
||||
PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1)
|
||||
#ifdef __powerpc64__
|
||||
PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1)
|
||||
#endif
|
||||
crclr so
|
||||
mtlr r0
|
||||
.cfi_restore lr
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user