Jaromir Capik f7d47d
--- atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c	2013-12-05 19:19:57.000000000 +0100
Jaromir Capik f7d47d
+++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c.new	2013-12-06 16:29:57.000000000 +0100
Jaromir Capik f7d47d
@@ -170,13 +170,21 @@ void ATL_USERMM(const int M, const int N
Jaromir Capik f7d47d
                 const TYPE beta, TYPE *C, const int ldc)
Jaromir Capik f7d47d
                                   (r10)    8(r1)
Jaromir Capik f7d47d
 *******************************************************************************
Jaromir Capik f7d47d
-64 bit ABIs:
Jaromir Capik f7d47d
+64 bit ABIv1s:
Jaromir Capik f7d47d
                          r3           r4           r5             r6/f1
Jaromir Capik f7d47d
 void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha,
Jaromir Capik f7d47d
                            r7             r8             r9            r10
Jaromir Capik f7d47d
                 const TYPE *A, const int lda, const TYPE *B, const int ldb,
Jaromir Capik f7d47d
                              f2   120(r1)        128(r1)
Jaromir Capik f7d47d
                 const TYPE beta, TYPE *C, const int ldc)
Jaromir Capik f7d47d
+
Jaromir Capik f7d47d
+64 bit ABIv2s:
Jaromir Capik f7d47d
+                         r3           r4           r5             r6/f1
Jaromir Capik f7d47d
+void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha,
Jaromir Capik f7d47d
+                           r7             r8             r9            r10
Jaromir Capik f7d47d
+                const TYPE *A, const int lda, const TYPE *B, const int ldb,
Jaromir Capik f7d47d
+                             f2   104(r1)        112(r1)
Jaromir Capik f7d47d
+                const TYPE beta, TYPE *C, const int ldc)
Jaromir Capik f7d47d
 #endif
Jaromir Capik f7d47d
 #ifdef ATL_AS_AIX_PPC
Jaromir Capik f7d47d
         .csect .text[PR]
Jaromir Capik f7d47d
@@ -202,7 +210,7 @@ Mjoin(.,ATL_USERMM):
Jaromir Capik f7d47d
 	.globl  Mjoin(_,ATL_USERMM)
Jaromir Capik f7d47d
 Mjoin(_,ATL_USERMM):
Jaromir Capik f7d47d
    #else
Jaromir Capik f7d47d
-      #if defined(ATL_USE64BITS)
Jaromir Capik f7d47d
+      #if defined(ATL_USE64BITS) && _CALL_ELF != 2
Jaromir Capik f7d47d
 /*
Jaromir Capik f7d47d
  *      Official Program Descripter section, seg fault w/o it on Linux/PPC64
Jaromir Capik f7d47d
  */
Jaromir Capik f7d47d
@@ -217,6 +225,7 @@ ATL_USERMM:
Jaromir Capik f7d47d
 	.globl  Mjoin(.,ATL_USERMM)
Jaromir Capik f7d47d
 Mjoin(.,ATL_USERMM):
Jaromir Capik f7d47d
       #else
Jaromir Capik f7d47d
+/* ppc64 have no longer function descriptors in ABIv2 */      
Jaromir Capik f7d47d
 	.globl  ATL_USERMM
Jaromir Capik f7d47d
 ATL_USERMM:
Jaromir Capik f7d47d
       #endif
Jaromir Capik f7d47d
@@ -257,9 +266,17 @@ ATL_USERMM:
Jaromir Capik f7d47d
    #endif
Jaromir Capik f7d47d
 #endif
Jaromir Capik f7d47d
 
Jaromir Capik f7d47d
+
Jaromir Capik f7d47d
 #if defined (ATL_USE64BITS)
Jaromir Capik f7d47d
+#if _CALL_ELF == 2
Jaromir Capik f7d47d
+/* ABIv2 */
Jaromir Capik f7d47d
+        ld      pC0, 104(r1)
Jaromir Capik f7d47d
+        ld      incCn, 112(r1)
Jaromir Capik f7d47d
+#else
Jaromir Capik f7d47d
+/* ABIv1 */
Jaromir Capik f7d47d
         ld      pC0, 120(r1)
Jaromir Capik f7d47d
         ld      incCn, 128(r1)
Jaromir Capik f7d47d
+#endif
Jaromir Capik f7d47d
 #elif defined(ATL_AS_OSX_PPC) || defined(ATL_AS_AIX_PPC)
Jaromir Capik f7d47d
         lwz     pC0, 68(r1)
Jaromir Capik f7d47d
         lwz     incCn,  72(r1)