Commit 7fec9f5d authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc/vdso: Save and restore TOC pointer on PPC64

On PPC64, the TOC pointer needs to be saved and restored.
Suggested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201126131006.2431205-7-mpe@ellerman.id.au
parent ce7d8056
...@@ -19,10 +19,16 @@ ...@@ -19,10 +19,16 @@
.cfi_register lr, r0 .cfi_register lr, r0
PPC_STLU r1, -PPC_MIN_STKFRM(r1) PPC_STLU r1, -PPC_MIN_STKFRM(r1)
PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(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 get_datapage r5, r0
addi r5, r5, VDSO_DATA_OFFSET addi r5, r5, VDSO_DATA_OFFSET
bl DOTSYM(\funct) bl DOTSYM(\funct)
PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) 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 cmpwi r3, 0
mtlr r0 mtlr r0
.cfi_restore lr .cfi_restore lr
...@@ -42,10 +48,16 @@ ...@@ -42,10 +48,16 @@
.cfi_register lr, r0 .cfi_register lr, r0
PPC_STLU r1, -PPC_MIN_STKFRM(r1) PPC_STLU r1, -PPC_MIN_STKFRM(r1)
PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(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 get_datapage r4, r0
addi r4, r4, VDSO_DATA_OFFSET addi r4, r4, VDSO_DATA_OFFSET
bl DOTSYM(\funct) bl DOTSYM(\funct)
PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1)
#ifdef __powerpc64__
PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1)
#endif
crclr so crclr so
mtlr r0 mtlr r0
.cfi_restore lr .cfi_restore lr
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment