Skip to content

Commit 282230c

Browse files
authored
Merge pull request #1993 from martin-frbg/aarnes-zarch
Various fixes for the new Z14 target
2 parents 42df9ef + cce574c commit 282230c

File tree

15 files changed

+885
-11
lines changed

15 files changed

+885
-11
lines changed

TargetList.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,4 @@ THUNDERX2T99
9494
9.System Z:
9595
ZARCH_GENERIC
9696
Z13
97+
Z14

cpuid_zarch.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,14 @@ void get_cpuconfig(void)
114114
break;
115115
case CPU_Z14:
116116
printf("#define Z14\n");
117+
printf("#define L1_DATA_SIZE 131072\n");
118+
printf("#define L1_DATA_LINESIZE 256\n");
119+
printf("#define L1_DATA_ASSOCIATIVE 8\n");
120+
printf("#define L2_SIZE 4194304\n");
121+
printf("#define L2_LINESIZE 256\n");
122+
printf("#define L2_ASSOCIATIVE 8\n");
117123
printf("#define DTB_DEFAULT_ENTRIES 64\n");
124+
printf("#define DTB_SIZE 4096\n");
118125
break;
119126
}
120127
}

getarch.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,16 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
10851085
#define CORENAME "Z13"
10861086
#endif
10871087

1088+
#ifdef FORCE_Z14
1089+
#define FORCE
1090+
#define ARCHITECTURE "ZARCH"
1091+
#define SUBARCHITECTURE "Z14"
1092+
#define ARCHCONFIG "-DZ14 " \
1093+
"-DDTB_DEFAULT_ENTRIES=64"
1094+
#define LIBNAME "z14"
1095+
#define CORENAME "Z14"
1096+
#endif
1097+
10881098
#ifndef FORCE
10891099

10901100
#ifdef USER_TARGET

kernel/Makefile.L3

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ ifeq ($(ARCH), zarch)
4848
USE_TRMM = 1
4949
endif
5050

51+
ifeq ($(CORE), Z14)
52+
USE_TRMM = 1
53+
endif
54+
5155

5256

5357

kernel/zarch/damax.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ static FLOAT damax_kernel_32(BLASLONG n, FLOAT *x)
8181

8282
"vfmaxdb %%v16,%%v16,%%v17,8 \n\t"
8383

84-
"vfmaxdb %%v0,%%v0,%%16,8 \n\t"
84+
"vfmaxdb %%v0,%%v0,%%v16,8 \n\t"
8585

8686
"agfi %%r1, 256 \n\t"
8787
"brctg %%r0, 0b \n\t"

kernel/zarch/damin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ static FLOAT damin_kernel_32(BLASLONG n, FLOAT *x)
8181

8282
"vfmindb %%v16,%%v16,%%v17,8 \n\t"
8383

84-
"vfmindb %%v0,%%v0,%%16,8 \n\t"
84+
"vfmindb %%v0,%%v0,%%v16,8 \n\t"
8585

8686
"agfi %%r1, 256 \n\t"
8787
"brctg %%r0, 0b \n\t"

kernel/zarch/dmax.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ static FLOAT dmax_kernel_32(BLASLONG n, FLOAT *x)
7474

7575
"vfmaxdb %%v16,%%v16,%%v17,0 \n\t"
7676

77-
"vfmaxdb %%v0,%%v0,%%16,0 \n\t"
77+
"vfmaxdb %%v0,%%v0,%%v16,0 \n\t"
7878

7979
"agfi %%r1, 256 \n\t"
8080
"brctg %%r0, 0b \n\t"

kernel/zarch/dmin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ static FLOAT dmin_kernel_32(BLASLONG n, FLOAT *x)
7474

7575
"vfmindb %%v16,%%v16,%%v17,0 \n\t"
7676

77-
"vfmindb %%v0,%%v0,%%16,0 \n\t"
77+
"vfmindb %%v0,%%v0,%%v16,0 \n\t"
7878

7979
"agfi %%r1, 256 \n\t"
8080
"brctg %%r0, 0b \n\t"

kernel/zarch/dsdot.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ double CNAME(BLASLONG n,FLOAT *x,BLASLONG inc_x,FLOAT *y,BLASLONG inc_y)
132132
while(i < n)
133133
{
134134

135-
dot += y[i] * x[i] ;
135+
dot += (double) y[i] * (double) x[i] ;
136136
i++ ;
137137

138138
}
@@ -146,7 +146,8 @@ double CNAME(BLASLONG n,FLOAT *x,BLASLONG inc_x,FLOAT *y,BLASLONG inc_y)
146146
while(i < n1)
147147
{
148148

149-
dot += y[iy] * x[ix] + y[iy+inc_y] * x[ix+inc_x];
149+
dot += (double) y[iy] * (double) x[ix];
150+
dot += (double) y[iy+inc_y] * (double) x[ix+inc_x];
150151
ix += inc_x*2 ;
151152
iy += inc_y*2 ;
152153
i+=2 ;
@@ -156,7 +157,7 @@ double CNAME(BLASLONG n,FLOAT *x,BLASLONG inc_x,FLOAT *y,BLASLONG inc_y)
156157
while(i < n)
157158
{
158159

159-
dot += y[iy] * x[ix] ;
160+
dot += (double) y[iy] * (double) x[ix] ;
160161
ix += inc_x ;
161162
iy += inc_y ;
162163
i++ ;

kernel/zarch/samax.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ static FLOAT samax_kernel_64(BLASLONG n, FLOAT *x)
8181

8282
"vfmaxsb %%v16,%%v16,%%v17,8 \n\t"
8383

84-
"vfmaxsb %%v0,%%v0,%%16,8 \n\t"
84+
"vfmaxsb %%v0,%%v0,%%v16,8 \n\t"
8585

8686
"agfi %%r1, 256 \n\t"
8787
"brctg %%r0, 0b \n\t"

0 commit comments

Comments
 (0)