diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S index a737322e2a..21ad98e501 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S @@ -34,11 +34,19 @@ ENTRY (BP_SYM (__brk)) lwz r6,8(r1) #ifdef PIC mflr r4 +# ifdef HAVE_ASM_PPC_REL16 + bcl 20,31,1f +1: mflr r5 + addis r5,r5,__curbrk-1b@ha + mtlr r4 + stw r3,__curbrk-1b@l(r5) +# else bl _GLOBAL_OFFSET_TABLE_@local-4 mflr r5 lwz r5,__curbrk@got(r5) mtlr r4 stw r3,0(r5) +# endif #else lis r4,__curbrk@ha stw r3,__curbrk@l(r4) |