alignment and correction bug in glibc

Jimi Xenidis jimix at watson.ibm.com
Sat Dec 6 02:47:29 EST 2003


File linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h

performs a ld, cmpdi with 0 on a 32 bit value before every system call
in a threaded app.

diff of proposed fixe below.
-JX


--- sysdep-cancel.h	Tue Jun 17 18:22:57 2003
+++ /tmp/fix.S	Fri Dec  5 10:43:37 2003
@@ -103,8 +103,8 @@
 	.tc __local_multiple_threads[TC],__local_multiple_threads; \
   .previous;              \
   ld    10,.LC__local_multiple_threads at toc(2);				\
-  ld    10,0(10);								\
-  cmpdi 10,0
+  lwz   10,0(10);							\
+  cmpwi 10,0
 # endif

 #elif !defined __ASSEMBLER__

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list