Skip to content

Commit 4119827

Browse files
conventional usage of the register save area
2 parents 0d96b0e + e831d69 commit 4119827

File tree

3 files changed

+29
-37
lines changed

3 files changed

+29
-37
lines changed

kernel/zarch/gemm8x4V.S

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7373
#define ASSEMBLER
7474
#include "common.h"
7575

76-
/************** Notes ON IBM abi and IBM assembly**********************************************
77-
* General registers r0 and r1 should be used internally whenever possible
78-
* General registers r2 to r5 should be second choice
79-
* General registers r12 to r15 should only be used for their standard function.
80-
* r0 should not be used as address disp register
76+
/*
8177
8278
#BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alpha,FLOAT* ba,FLOAT* bb,FLOAT* C,BLASLONG ldc
8379
##bm=r2,bn=r3, bk=r4, alpha=f0,ba=r5,bb=r6,stack[160] ,ldc=stack[168]
8480
**********************************************************************************************/
85-
81+
/*Note: r0 can not be used as address disp register */
8682

8783
#define BM %r2
8884
#define BM_CUR %r0
@@ -109,7 +105,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
109105

110106
PROLOGUE
111107

112-
stmg %r6,%r12,40(%r15)
108+
stmg %r6,%r12,48(%r15)
113109
lg CIJ, 160(%r15)
114110
lg LOCAL_VAR1, 168(%r15)
115111
srlg BN_CUR,BN,2
@@ -606,7 +602,7 @@ la B,0(B,LOCAL_VAR2) /*refresh B=B+Bk*1*sizeof(double) */
606602
ALIGN_2
607603
.L_FUNC_END:
608604
/*end*/
609-
lmg %r6,%r12,40(%r15)
605+
lmg %r6,%r12,48(%r15)
610606
br %r14
611607
.end
612608

kernel/zarch/trmm8x4V.S

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,14 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7373
#define ASSEMBLER
7474
#include "common.h"
7575

76-
/************** Notes ON IBM abi and IBM assembly**********************************************
77-
* General registers r0 and r1 should be used internally whenever possible
78-
* General registers r2 to r5 should be second choice
79-
* General registers r12 to r15 should only be used for their standard function.
80-
* r0 should not be used as address disp register
76+
77+
/*
8178
8279
#BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alpha,FLOAT* ba,FLOAT* bb,FLOAT* C,BLASLONG ldc
8380
##bm=r2,bn=r3, bk=r4, alpha=f0,ba=r5,bb=r6,stack[160] ,ldc=stack[168]
8481
offset=stack[176]
8582
**********************************************************************************************/
86-
83+
/*Note: r0 can not be used as address disp register */
8784

8885
#define BM %r2
8986
#define BM_CUR %r0
@@ -131,16 +128,16 @@ offset=stack[176]
131128
/***********************************DGEMM***********************************************************/
132129

133130
PROLOGUE
134-
#if defined(TRMMKERNEL)
135-
stmg %r6,%r13,40(%r15)
131+
#if defined(TRMMKERNEL)
132+
std OFFSET,40(%r15)
133+
stmg %r6,%r13,48(%r15)
136134
#else
137-
stmg %r6,%r12,40(%r15)
135+
stmg %r6,%r12,48(%r15)
138136
#endif
139137
lg CIJ, 160(%r15)
140138
lg LOCAL_VAR1, 168(%r15)
141139
#if defined(TRMMKERNEL)
142140
lg OFF,176(%r15)
143-
std OFFSET,32(%r15)
144141
ldgr OFFSET ,OFF
145142
#endif
146143
srlg BN_CUR,BN,2
@@ -861,10 +858,10 @@ ALIGN_2
861858
.L_FUNC_END:
862859
/*end*/
863860
#if defined(TRMMKERNEL)
864-
ld %f8,32(%r15)
865-
lmg %r6,%r13,40(%r15)
861+
ld OFFSET,40(%r15)
862+
lmg %r6,%r13,48(%r15)
866863
#else
867-
lmg %r6,%r12,40(%r15)
864+
lmg %r6,%r12,48(%r15)
868865
#endif
869866
br %r14
870867
.end

kernel/zarch/ztrmm4x4V.S

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,16 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7373
#define ASSEMBLER
7474
#include "common.h"
7575

76-
/************** Notes ON IBM abi and IBM assembly**********************************************
77-
* General registers r0 and r1 should be used internally whenever possible
78-
* General registers r2 to r5 should be second choice
79-
* General registers r12 to r15 should only be used for their standard function.
80-
* r0 should not be used as address disp register
76+
/*
77+
8178
8279
BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alphar,FLOAT alphai,FLOAT* ba,FLOAT* bb,
8380
FLOAT* C,BLASLONG ldc, BLASLONG offset)
8481
##bm=r2,bn=r3, bk=r4, alpha=f0,aplhai=f2, ba=r5,bb=r6,stack[160] ,ldc=stack[168]
8582
offset=stack[176]
8683
8784
**********************************************************************************************/
88-
85+
/*Note: r0 can not be used as address disp register */
8986

9087
#define BM %r2
9188
#define BM_CUR %r0
@@ -118,21 +115,21 @@ offset=stack[176]
118115
/***********************************ZGEMM**4x4*******************************************************/
119116

120117
PROLOGUE
121-
#if defined(TRMMKERNEL)
118+
#if defined(TRMMKERNEL)
119+
std OFFSET ,40(%r15)
122120
stmg %r6,%r13,48(%r15)
123121
#else
124122
stmg %r6,%r12,48(%r15)
125123
#endif
126-
std %f11,8(%r15)
127-
std %f10,16(%r15)
128-
std %f9,24(%r15)
129-
std %f12,32(%r15)
124+
std %f9, 128(%r15)
125+
std %f10,136(%r15)
126+
std %f11,144(%r15)
127+
std %f12,152(%r15)
130128

131129
lg CIJ, 160(%r15)
132130
lg LOCAL_VAR1, 168(%r15)
133131
#if defined(TRMMKERNEL)
134132
lg OFF,176(%r15)
135-
std OFFSET,40(%r15)
136133
ldgr OFFSET ,OFF
137134
#endif
138135
srlg BN_CUR,BN,2
@@ -709,16 +706,18 @@ la B,0(B,LOCAL_VAR2) /*refresh B=B+Bk*1*sizeof(complex) */
709706
ALIGN_2
710707
.L_FUNC_END:
711708
/*end*/
712-
ld %f11,8(%r15)
713-
ld %f10,16(%r15)
714-
ld %f9,24(%r15)
715-
ld %f12,32(%r15)
709+
710+
716711
#if defined(TRMMKERNEL)
717712
ld OFFSET,40(%r15)
718713
lmg %r6,%r13,48(%r15)
719714
#else
720715
lmg %r6,%r12,48(%r15)
721716
#endif
717+
ld %f9, 128(%r15)
718+
ld %f10,136(%r15)
719+
ld %f11,144(%r15)
720+
ld %f12,152(%r15)
722721
br %r14
723722
.end
724723

0 commit comments

Comments
 (0)