diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc32/fpu/setjmp-common.S')
-rw-r--r-- | sysdeps/powerpc/powerpc32/fpu/setjmp-common.S | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S index e0c0606da4..cf3f215f2d 100644 --- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S +++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S @@ -74,20 +74,27 @@ ENTRY (BP_SYM (__sigsetjmp)) stw r31,((JB_GPRS+17)*4)(3) stfd fp31,((JB_FPRS+17*2)*4)(3) #ifndef __NO_VMX__ -#ifdef PIC +# ifdef PIC mflr r6 +# ifdef HAVE_ASM_PPC_REL16 + bcl 20,31,1f +1: mflr r5 + addis r5,r5,_GLOBAL_OFFSET_TABLE_-1b@ha + addi r5,r5,_GLOBAL_OFFSET_TABLE_-1b@l +# else bl _GLOBAL_OFFSET_TABLE_@local-4 mflr r5 -#ifdef SHARED +# endif +# ifdef SHARED lwz r5,_rtld_global_ro@got(r5) mtlr r6 lwz r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5) -#else - lwz r5,_rtld_global_ro@got(r5) +# else + lwz r5,_dl_hwcap@got(r5) mtlr r6 lwz r5,0(r5) -#endif -#else +# endif +# else lis r5,_dl_hwcap@ha lwz r5,_dl_hwcap@l(r5) #endif |