From patchwork Mon Jun 6 14:36:34 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Committed] S/390: longlong.h fix smul_ppmm Date: Mon, 06 Jun 2011 04:36:34 -0000 From: Andreas Krebbel X-Patchwork-Id: 98935 Message-Id: <20110606143634.GA10946@bart> To: gcc-patches@gcc.gnu.org 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 * 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 { \