]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
PowerPC LE _dl_hwcap access
authorAlan Modra <amodra@gmail.com>
Sat, 17 Aug 2013 09:06:11 +0000 (18:36 +0930)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Fri, 15 Nov 2013 17:30:34 +0000 (11:30 -0600)
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.

ChangeLog
sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S

index f37cd7b6b8bf949eafb4e99f235eb0c853ddfca7..2e6eb849d501f4abe25b58c18ed9b62424226df8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        * sysdeps/powerpc/longjmp.c: Use proper symbol versioning macros.
index 989899e57f0026c1114100b95f37b21855910a8a..7e108f90eb834c22c6be28c402b4834387567bad 100644 (file)
@@ -151,15 +151,15 @@ ENTRY(__CONTEXT_FUNC_NAME)
 #   ifdef SHARED
        lwz     r7,_rtld_global_ro@got(r7)
        mtlr    r8
-       lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7)
+       lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
 #   else
        lwz     r7,_dl_hwcap@got(r7)
        mtlr    r8
-       lwz     r7,4(r7)
+       lwz     r7,LOWORD(r7)
 #   endif
 #  else
-       lis     r7,(_dl_hwcap+4)@ha
-       lwz     r7,(_dl_hwcap+4)@l(r7)
+       lis     r7,(_dl_hwcap+LOWORD)@ha
+       lwz     r7,(_dl_hwcap+LOWORD)@l(r7)
 #  endif
        andis.  r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
 
index 900ce04cf5baaaaa231aac26f65f5d0f146bbe17..31219957087314a500dad449a4ff66e0c022ad86 100644 (file)
@@ -79,15 +79,15 @@ ENTRY(__CONTEXT_FUNC_NAME)
 # ifdef SHARED
        lwz     r7,_rtld_global_ro@got(r7)
        mtlr    r8
-       lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7)
+       lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
 # else
        lwz     r7,_dl_hwcap@got(r7)
        mtlr    r8
-       lwz     r7,4(r7)
+       lwz     r7,LOWORD(r7)
 # endif
 #else
-       lis     r7,(_dl_hwcap+4)@ha
-       lwz     r7,(_dl_hwcap+4)@l(r7)
+       lis     r7,(_dl_hwcap+LOWORD)@ha
+       lwz     r7,(_dl_hwcap+LOWORD)@l(r7)
 #endif
 
 #ifdef __CONTEXT_ENABLE_FPRS
index 77e47a712ee5d020ac243a0294c64c2bb91b2e9b..0e942d3e86cff6e5e6a43c271841792e0e7216a3 100644 (file)
@@ -152,15 +152,15 @@ ENTRY(__CONTEXT_FUNC_NAME)
 #  ifdef SHARED
        lwz     r7,_rtld_global_ro@got(r7)
        mtlr    r8
-       lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+4(r7)
+       lwz     r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
 #  else
        lwz     r7,_dl_hwcap@got(r7)
        mtlr    r8
-       lwz     r7,4(r7)
+       lwz     r7,LOWORD(r7)
 #  endif
 # else
-       lis     r7,(_dl_hwcap+4)@ha
-       lwz     r7,(_dl_hwcap+4)@l(r7)
+       lis     r7,(_dl_hwcap+LOWORD)@ha
+       lwz     r7,(_dl_hwcap+LOWORD)@l(r7)
 # endif
 
 # ifdef __CONTEXT_ENABLE_VRS
@@ -308,14 +308,14 @@ ENTRY(__CONTEXT_FUNC_NAME)
        mtlr    r8
 #   ifdef SHARED
        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
        lwz     r7,_dl_hwcap@got(r7)
-       lwz     r7,4(r7)
+       lwz     r7,LOWORD(r7)
 #   endif
 #  else
-       lis     r7,(_dl_hwcap+4)@ha
-       lwz     r7,(_dl_hwcap+4)@l(r7)
+       lis     r7,(_dl_hwcap+LOWORD)@ha
+       lwz     r7,(_dl_hwcap+LOWORD)@l(r7)
 #  endif
        andis.  r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
        la      r10,(_UC_VREGS)(r31)