PowerPC LE _dl_hwcap access

http://sourceware.org/ml/libc-alpha/2013-08/msg00091.html

More LE support, correcting word accesses to _dl_hwcap.

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S: Use
	HIWORD/LOWORD.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Ditto.
This commit is contained in:
Alan Modra 2013-08-17 18:36:11 +09:30
parent 9b874b2f1e
commit 02f04a6c7f
4 changed files with 23 additions and 16 deletions

View File

@ -1,3 +1,10 @@
2013-10-04 Alan Modra <amodra@gmail.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S: Use
HIWORD/LOWORD.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Ditto.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Ditto.
2013-10-04 Alan Modra <amodra@gmail.com> 2013-10-04 Alan Modra <amodra@gmail.com>
* sysdeps/powerpc/longjmp.c: Use proper symbol versioning macros. * sysdeps/powerpc/longjmp.c: Use proper symbol versioning macros.

View File

@ -151,15 +151,15 @@ ENTRY(__CONTEXT_FUNC_NAME)
# ifdef SHARED # ifdef SHARED
lwz r7,_rtld_global_ro@got(r7) lwz r7,_rtld_global_ro@got(r7)
mtlr r8 mtlr r8
lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7) lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
# else # else
lwz r7,_dl_hwcap@got(r7) lwz r7,_dl_hwcap@got(r7)
mtlr r8 mtlr r8
lwz r7,4(r7) lwz r7,LOWORD(r7)
# endif # endif
# else # else
lis r7,(_dl_hwcap+4)@ha lis r7,(_dl_hwcap+LOWORD)@ha
lwz r7,(_dl_hwcap+4)@l(r7) lwz r7,(_dl_hwcap+LOWORD)@l(r7)
# endif # endif
andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16) andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)

View File

@ -79,15 +79,15 @@ ENTRY(__CONTEXT_FUNC_NAME)
# ifdef SHARED # ifdef SHARED
lwz r7,_rtld_global_ro@got(r7) lwz r7,_rtld_global_ro@got(r7)
mtlr r8 mtlr r8
lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7) lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
# else # else
lwz r7,_dl_hwcap@got(r7) lwz r7,_dl_hwcap@got(r7)
mtlr r8 mtlr r8
lwz r7,4(r7) lwz r7,LOWORD(r7)
# endif # endif
#else #else
lis r7,(_dl_hwcap+4)@ha lis r7,(_dl_hwcap+LOWORD)@ha
lwz r7,(_dl_hwcap+4)@l(r7) lwz r7,(_dl_hwcap+LOWORD)@l(r7)
#endif #endif
#ifdef __CONTEXT_ENABLE_FPRS #ifdef __CONTEXT_ENABLE_FPRS

View File

@ -152,15 +152,15 @@ ENTRY(__CONTEXT_FUNC_NAME)
# ifdef SHARED # ifdef SHARED
lwz r7,_rtld_global_ro@got(r7) lwz r7,_rtld_global_ro@got(r7)
mtlr r8 mtlr r8
lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7) lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
# else # else
lwz r7,_dl_hwcap@got(r7) lwz r7,_dl_hwcap@got(r7)
mtlr r8 mtlr r8
lwz r7,4(r7) lwz r7,LOWORD(r7)
# endif # endif
# else # else
lis r7,(_dl_hwcap+4)@ha lis r7,(_dl_hwcap+LOWORD)@ha
lwz r7,(_dl_hwcap+4)@l(r7) lwz r7,(_dl_hwcap+LOWORD)@l(r7)
# endif # endif
# ifdef __CONTEXT_ENABLE_VRS # ifdef __CONTEXT_ENABLE_VRS
@ -308,14 +308,14 @@ ENTRY(__CONTEXT_FUNC_NAME)
mtlr r8 mtlr r8
# ifdef SHARED # ifdef SHARED
lwz r7,_rtld_global_ro@got(r7) lwz r7,_rtld_global_ro@got(r7)
lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7) lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
# else # else
lwz r7,_dl_hwcap@got(r7) lwz r7,_dl_hwcap@got(r7)
lwz r7,4(r7) lwz r7,LOWORD(r7)
# endif # endif
# else # else
lis r7,(_dl_hwcap+4)@ha lis r7,(_dl_hwcap+LOWORD)@ha
lwz r7,(_dl_hwcap+4)@l(r7) lwz r7,(_dl_hwcap+LOWORD)@l(r7)
# endif # endif
andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16) andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
la r10,(_UC_VREGS)(r31) la r10,(_UC_VREGS)(r31)