Skip to content

Commit 08fa83a

Browse files
authored
Merge pull request #2312 from martin-frbg/power8be
Further Power8 big-endian corrections
2 parents 63d3ee8 + cad0d15 commit 08fa83a

File tree

8 files changed

+42
-11
lines changed

8 files changed

+42
-11
lines changed

kernel/power/KERNEL.POWER8

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,30 @@ ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
8989
#SMINKERNEL = ../arm/min.c
9090
#DMINKERNEL = ../arm/min.c
9191
#
92+
ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__))
9293
ISAMAXKERNEL = isamax_power8.S
94+
else
95+
ISAMAXKERNEL = isamax.c
96+
endif
9397
IDAMAXKERNEL = idamax.c
98+
ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__))
9499
ICAMAXKERNEL = icamax_power8.S
100+
else
101+
ICAMAXKERNEL = icamax.c
102+
endif
95103
IZAMAXKERNEL = izamax.c
96104
#
105+
ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__))
97106
ISAMINKERNEL = isamin_power8.S
107+
else
108+
ISAMINKERNEL = isamin.c
109+
endif
98110
IDAMINKERNEL = idamin.c
111+
ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__))
99112
ICAMINKERNEL = icamin_power8.S
113+
else
114+
ICAMINKERNEL = icamin.c
115+
endif
100116
IZAMINKERNEL = izamin.c
101117
#
102118
#ISMAXKERNEL = ../arm/imax.c
@@ -112,7 +128,11 @@ ZASUMKERNEL = zasum.c
112128
#
113129
SAXPYKERNEL = saxpy.c
114130
DAXPYKERNEL = daxpy.c
131+
ifneq ($(__BYTE_ORDER__),$(__ORDER_BIG_ENDIAN__))
115132
CAXPYKERNEL = caxpy_power8.S
133+
else
134+
CAXPYKERNEL = caxpy.c
135+
endif
116136
ZAXPYKERNEL = zaxpy.c
117137
#
118138
SCOPYKERNEL = scopy.c

kernel/power/caxpy_power8.S

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212

1313
PROLOGUE
1414

15-
caxpy_k:
1615
.LCF0:
1716
0: addis 2,12,.TOC.-.LCF0@ha
1817
addi 2,2,.TOC.-.LCF0@l
18+
#if _CALL_ELF ==2
1919
.localentry caxpy_k,.-caxpy_k
20+
#endif
2021
mr. 7,3
2122
ble 0,.L33
2223
cmpdi 7,9,1
@@ -515,7 +516,9 @@ caxpy_k:
515516
b .L13
516517
.long 0
517518
.byte 0,0,0,0,0,4,0,0
519+
#if _CALL_ELF ==2
518520
.size caxpy_k,.-caxpy_k
521+
#endif
519522
.section .rodata
520523
.align 4
521524
.set .LANCHOR0,. + 0

kernel/power/icamin_power8.S

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111

1212
PROLOGUE
1313

14-
icamin_k:
1514
.LCF0:
1615
0: addis 2,12,.TOC.-.LCF0@ha
1716
addi 2,2,.TOC.-.LCF0@l
17+
#if _CALL_ELF ==2
1818
.localentry icamin_k,.-icamin_k
19+
#endif
1920
mr. 9,3
2021
ble 0,.L25
2122
cmpdi 7,5,0
@@ -388,7 +389,9 @@ icamin_k:
388389
b .L21
389390
.long 0
390391
.byte 0,0,0,0,0,1,0,0
392+
#if _CALL_ELF ==2
391393
.size icamin_k,.-icamin_k
394+
#endif
392395
.section .rodata.cst16,"aM",@progbits,16
393396
.align 4
394397
.LC2:

kernel/power/idamax.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,15 +324,15 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
324324

325325
if (inc_x == 1) {
326326

327-
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
328327
BLASLONG n1 = n & -32;
329-
if (n1 > 0) {
328+
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
329+
if (n1 > 0) {
330330

331331
max = diamax_kernel_32(n1, x, &maxf);
332332

333333
i = n1;
334334
}
335-
#endif
335+
#endif
336336
while (i < n) {
337337
if (ABS(x[i]) > maxf) {
338338
max = i;

kernel/power/idamin.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,13 +328,12 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
328328

329329
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
330330
BLASLONG n1 = n & -32;
331-
if (n1 > 0) {
331+
if (n1 > 0) {
332332

333333
min = diamin_kernel_32(n1, x, &minf);
334334
i = n1;
335335
}
336336
#endif
337-
338337
while (i < n) {
339338
if (ABS(x[i]) < minf) {
340339
min = i;

kernel/power/isamax_power8.S

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212

1313
PROLOGUE
1414

15-
isamax_k:
1615
.LCF0:
1716
0: addis 2,12,.TOC.-.LCF0@ha
1817
addi 2,2,.TOC.-.LCF0@l
18+
#if _CALL_ELF ==2
1919
.localentry isamax_k,.-isamax_k
20+
#endif
2021
mr. 11,3
2122
ble 0,.L36
2223
cmpdi 7,5,0
@@ -397,7 +398,9 @@ isamax_k:
397398
b .L61
398399
.long 0
399400
.byte 0,0,0,0,0,1,0,0
401+
#if _CALL_ELF ==2
400402
.size isamax_k,.-isamax_k
403+
#endif
401404
.section .rodata.cst16,"aM",@progbits,16
402405
.align 4
403406
.LC2:

kernel/power/isamin_power8.S

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111

1212
PROLOGUE
1313

14-
isamin_k:
1514
.LCF0:
1615
0: addis 2,12,.TOC.-.LCF0@ha
1716
addi 2,2,.TOC.-.LCF0@l
17+
#if _CALL_ELF ==2
1818
.localentry isamin_k,.-isamin_k
19+
#endif
1920
mr. 11,3
2021
ble 0,.L36
2122
cmpdi 7,5,0
@@ -380,7 +381,9 @@ isamin_k:
380381
b .L35
381382
.long 0
382383
.byte 0,0,0,0,0,1,0,0
384+
#if _CALL_ELF ==2
383385
.size isamin_k,.-isamin_k
386+
#endif
384387
.section .rodata.cst16,"aM",@progbits,16
385388
.align 4
386389
.LC2:

kernel/power/izamin.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,14 +316,14 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
316316
minf = CABS1(x,0); //index will not be incremented
317317

318318
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
319-
BLASLONG n1 = n & -16;
319+
BLASLONG n1 = n & -16;
320320
if (n1 > 0) {
321321

322322
min = ziamin_kernel_16_TUNED(n1, x, &minf);
323323
i = n1;
324324
ix = n1 << 1;
325325
}
326-
#endif
326+
#endif
327327

328328
while(i < n)
329329
{

0 commit comments

Comments
 (0)