diff --git a/kernel/power/KERNEL.POWER8 b/kernel/power/KERNEL.POWER8 index c08f3fb00..fb9452a35 100644 --- a/kernel/power/KERNEL.POWER8 +++ b/kernel/power/KERNEL.POWER8 @@ -89,14 +89,30 @@ ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c #SMINKERNEL = ../arm/min.c #DMINKERNEL = ../arm/min.c # +ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__)) ISAMAXKERNEL = isamax_power8.S +else +ISAMAXKERNEL = isamax.c +endif IDAMAXKERNEL = idamax.c +ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__)) ICAMAXKERNEL = icamax_power8.S +else +ICAMAXKERNEL = icamax.c +endif IZAMAXKERNEL = izamax.c # +ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__)) ISAMINKERNEL = isamin_power8.S +else +ISAMINKERNEL = isamin.c +endif IDAMINKERNEL = idamin.c +ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__)) ICAMINKERNEL = icamin_power8.S +else +ICAMINKERNEL = icamin.c +endif IZAMINKERNEL = izamin.c # #ISMAXKERNEL = ../arm/imax.c @@ -112,7 +128,11 @@ ZASUMKERNEL = zasum.c # SAXPYKERNEL = saxpy.c DAXPYKERNEL = daxpy.c +ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__)) CAXPYKERNEL = caxpy_power8.S +else +CAXPYKERNEL = caxpy.c +endif ZAXPYKERNEL = zaxpy.c # SCOPYKERNEL = scopy.c diff --git a/kernel/power/caxpy_power8.S b/kernel/power/caxpy_power8.S index 0ce61ca3b..b5f841d2e 100644 --- a/kernel/power/caxpy_power8.S +++ b/kernel/power/caxpy_power8.S @@ -12,11 +12,12 @@ PROLOGUE -caxpy_k: .LCF0: 0: addis 2,12,.TOC.-.LCF0@ha addi 2,2,.TOC.-.LCF0@l +#if _CALL_ELF ==2 .localentry caxpy_k,.-caxpy_k +#endif mr. 7,3 ble 0,.L33 cmpdi 7,9,1 @@ -515,7 +516,9 @@ caxpy_k: b .L13 .long 0 .byte 0,0,0,0,0,4,0,0 +#if _CALL_ELF ==2 .size caxpy_k,.-caxpy_k +#endif .section .rodata .align 4 .set .LANCHOR0,. + 0 diff --git a/kernel/power/icamin_power8.S b/kernel/power/icamin_power8.S index e3d66798e..f2993e83e 100644 --- a/kernel/power/icamin_power8.S +++ b/kernel/power/icamin_power8.S @@ -11,11 +11,12 @@ PROLOGUE -icamin_k: .LCF0: 0: addis 2,12,.TOC.-.LCF0@ha addi 2,2,.TOC.-.LCF0@l +#if _CALL_ELF ==2 .localentry icamin_k,.-icamin_k +#endif mr. 9,3 ble 0,.L25 cmpdi 7,5,0 @@ -388,7 +389,9 @@ icamin_k: b .L21 .long 0 .byte 0,0,0,0,0,1,0,0 +#if _CALL_ELF ==2 .size icamin_k,.-icamin_k +#endif .section .rodata.cst16,"aM",@progbits,16 .align 4 .LC2: diff --git a/kernel/power/idamax.c b/kernel/power/idamax.c index 337fa54f8..95aa592c7 100644 --- a/kernel/power/idamax.c +++ b/kernel/power/idamax.c @@ -324,15 +324,15 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) { if (inc_x == 1) { -#if defined(_CALL_ELF) && (_CALL_ELF == 2) BLASLONG n1 = n & -32; - if (n1 > 0) { +#if defined(_CALL_ELF) && (_CALL_ELF == 2) + if (n1 > 0) { max = diamax_kernel_32(n1, x, &maxf); i = n1; } -#endif +#endif while (i < n) { if (ABS(x[i]) > maxf) { max = i; diff --git a/kernel/power/idamin.c b/kernel/power/idamin.c index 85dd49ac1..323f9987e 100644 --- a/kernel/power/idamin.c +++ b/kernel/power/idamin.c @@ -328,13 +328,12 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) { #if defined(_CALL_ELF) && (_CALL_ELF == 2) BLASLONG n1 = n & -32; - if (n1 > 0) { + if (n1 > 0) { min = diamin_kernel_32(n1, x, &minf); i = n1; } #endif - while (i < n) { if (ABS(x[i]) < minf) { min = i; diff --git a/kernel/power/isamax_power8.S b/kernel/power/isamax_power8.S index c8fcaecc3..fa5433333 100644 --- a/kernel/power/isamax_power8.S +++ b/kernel/power/isamax_power8.S @@ -12,11 +12,12 @@ PROLOGUE -isamax_k: .LCF0: 0: addis 2,12,.TOC.-.LCF0@ha addi 2,2,.TOC.-.LCF0@l +#if _CALL_ELF ==2 .localentry isamax_k,.-isamax_k +#endif mr. 11,3 ble 0,.L36 cmpdi 7,5,0 @@ -397,7 +398,9 @@ isamax_k: b .L61 .long 0 .byte 0,0,0,0,0,1,0,0 +#if _CALL_ELF ==2 .size isamax_k,.-isamax_k +#endif .section .rodata.cst16,"aM",@progbits,16 .align 4 .LC2: diff --git a/kernel/power/isamin_power8.S b/kernel/power/isamin_power8.S index 3873e879b..c9b6acb85 100644 --- a/kernel/power/isamin_power8.S +++ b/kernel/power/isamin_power8.S @@ -11,11 +11,12 @@ PROLOGUE -isamin_k: .LCF0: 0: addis 2,12,.TOC.-.LCF0@ha addi 2,2,.TOC.-.LCF0@l +#if _CALL_ELF ==2 .localentry isamin_k,.-isamin_k +#endif mr. 11,3 ble 0,.L36 cmpdi 7,5,0 @@ -380,7 +381,9 @@ isamin_k: b .L35 .long 0 .byte 0,0,0,0,0,1,0,0 +#if _CALL_ELF ==2 .size isamin_k,.-isamin_k +#endif .section .rodata.cst16,"aM",@progbits,16 .align 4 .LC2: diff --git a/kernel/power/izamin.c b/kernel/power/izamin.c index 8da2189c6..06a5537d8 100644 --- a/kernel/power/izamin.c +++ b/kernel/power/izamin.c @@ -316,14 +316,14 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) minf = CABS1(x,0); //index will not be incremented #if defined(_CALL_ELF) && (_CALL_ELF == 2) - BLASLONG n1 = n & -16; + BLASLONG n1 = n & -16; if (n1 > 0) { min = ziamin_kernel_16_TUNED(n1, x, &minf); i = n1; ix = n1 << 1; } -#endif +#endif while(i < n) {