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 cd5d1a1..ec81a6b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 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.
        * sysdeps/powerpc/novmx-longjmp.c: Likewise.
        * sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise.
index 6330780..14f39d6 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 bedebf0..f980d28 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 21c2e1f..90d7d72 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)