]> 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)
committerAlan Modra <amodra@gmail.com>
Fri, 4 Oct 2013 01:08:46 +0000 (10:38 +0930)
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 cd5d1a181b146c69283855907dc8a8ecffd8af51..ec81a6b81746d88bee25baf9c55fb33b4a2201ab 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 6330780378ba2db71e27d08a080ba4928de9fc64..14f39d6611f8a6222cc1172c618e3b64da1882f3 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 bedebf0acf13fc4f28c96eab72c2c2c20f6935be..f980d282ae485d91984490d82c66a9be3a52566b 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 21c2e1fc7d5a7da8e02f4b0eeccb0463bd9698e7..90d7d721282fc52f68620bcfc4b1737945eb6935 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)