Hi, the attached patch fixed a failure with -mzarch -m31. The smul_ppmm implementation in longlong.h uses the registers of the result in the wrong order.
A corresponding patch for glibc will be posted soon. Committed to 4.6 and mainline. Bye, -Andreas- 2011-06-06 Andreas Krebbel <andreas.kreb...@de.ibm.com> * longlong.h (smul_ppmm): The resulting register pair contains the higher order word first. Index: gcc-4.6/gcc/longlong.h =================================================================== --- gcc-4.6.orig/gcc/longlong.h +++ gcc-4.6/gcc/longlong.h @@ -349,7 +349,7 @@ UDItype __umulsidi3 (USItype, USItype); __asm__ ("mr\t%%r0,%3" \ : "=r" (r0), "=r" (r1) \ : "r" (r1), "r" (m1)); \ - (xh) = r1; (xl) = r0; \ + (xh) = r0; (xl) = r1; \ } while (0) #define sdiv_qrnnd(q, r, n1, n0, d) \ do { \