changed to conventional register save area
This commit is contained in:
parent
848cb27b1e
commit
e831d6924e
|
@ -73,16 +73,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ASSEMBLER
|
#define ASSEMBLER
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/************** Notes ON IBM abi and IBM assembly**********************************************
|
/*
|
||||||
* General registers r0 and r1 should be used internally whenever possible
|
|
||||||
* General registers r2 to r5 should be second choice
|
|
||||||
* General registers r12 to r15 should only be used for their standard function.
|
|
||||||
* r0 should not be used as address disp register
|
|
||||||
|
|
||||||
#BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alpha,FLOAT* ba,FLOAT* bb,FLOAT* C,BLASLONG ldc
|
#BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alpha,FLOAT* ba,FLOAT* bb,FLOAT* C,BLASLONG ldc
|
||||||
##bm=r2,bn=r3, bk=r4, alpha=f0,ba=r5,bb=r6,stack[160] ,ldc=stack[168]
|
##bm=r2,bn=r3, bk=r4, alpha=f0,ba=r5,bb=r6,stack[160] ,ldc=stack[168]
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
/*Note: r0 can not be used as address disp register */
|
||||||
|
|
||||||
#define BM %r2
|
#define BM %r2
|
||||||
#define BM_CUR %r0
|
#define BM_CUR %r0
|
||||||
|
@ -109,7 +105,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PROLOGUE
|
PROLOGUE
|
||||||
|
|
||||||
stmg %r6,%r12,40(%r15)
|
stmg %r6,%r12,48(%r15)
|
||||||
lg CIJ, 160(%r15)
|
lg CIJ, 160(%r15)
|
||||||
lg LOCAL_VAR1, 168(%r15)
|
lg LOCAL_VAR1, 168(%r15)
|
||||||
srlg BN_CUR,BN,2
|
srlg BN_CUR,BN,2
|
||||||
|
@ -606,7 +602,7 @@ la B,0(B,LOCAL_VAR2) /*refresh B=B+Bk*1*sizeof(double) */
|
||||||
ALIGN_2
|
ALIGN_2
|
||||||
.L_FUNC_END:
|
.L_FUNC_END:
|
||||||
/*end*/
|
/*end*/
|
||||||
lmg %r6,%r12,40(%r15)
|
lmg %r6,%r12,48(%r15)
|
||||||
br %r14
|
br %r14
|
||||||
.end
|
.end
|
||||||
|
|
||||||
|
|
|
@ -73,17 +73,14 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ASSEMBLER
|
#define ASSEMBLER
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/************** Notes ON IBM abi and IBM assembly**********************************************
|
|
||||||
* General registers r0 and r1 should be used internally whenever possible
|
/*
|
||||||
* General registers r2 to r5 should be second choice
|
|
||||||
* General registers r12 to r15 should only be used for their standard function.
|
|
||||||
* r0 should not be used as address disp register
|
|
||||||
|
|
||||||
#BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alpha,FLOAT* ba,FLOAT* bb,FLOAT* C,BLASLONG ldc
|
#BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alpha,FLOAT* ba,FLOAT* bb,FLOAT* C,BLASLONG ldc
|
||||||
##bm=r2,bn=r3, bk=r4, alpha=f0,ba=r5,bb=r6,stack[160] ,ldc=stack[168]
|
##bm=r2,bn=r3, bk=r4, alpha=f0,ba=r5,bb=r6,stack[160] ,ldc=stack[168]
|
||||||
offset=stack[176]
|
offset=stack[176]
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
/*Note: r0 can not be used as address disp register */
|
||||||
|
|
||||||
#define BM %r2
|
#define BM %r2
|
||||||
#define BM_CUR %r0
|
#define BM_CUR %r0
|
||||||
|
@ -131,16 +128,16 @@ offset=stack[176]
|
||||||
/***********************************DGEMM***********************************************************/
|
/***********************************DGEMM***********************************************************/
|
||||||
|
|
||||||
PROLOGUE
|
PROLOGUE
|
||||||
#if defined(TRMMKERNEL)
|
#if defined(TRMMKERNEL)
|
||||||
stmg %r6,%r13,40(%r15)
|
std OFFSET,40(%r15)
|
||||||
|
stmg %r6,%r13,48(%r15)
|
||||||
#else
|
#else
|
||||||
stmg %r6,%r12,40(%r15)
|
stmg %r6,%r12,48(%r15)
|
||||||
#endif
|
#endif
|
||||||
lg CIJ, 160(%r15)
|
lg CIJ, 160(%r15)
|
||||||
lg LOCAL_VAR1, 168(%r15)
|
lg LOCAL_VAR1, 168(%r15)
|
||||||
#if defined(TRMMKERNEL)
|
#if defined(TRMMKERNEL)
|
||||||
lg OFF,176(%r15)
|
lg OFF,176(%r15)
|
||||||
std OFFSET,32(%r15)
|
|
||||||
ldgr OFFSET ,OFF
|
ldgr OFFSET ,OFF
|
||||||
#endif
|
#endif
|
||||||
srlg BN_CUR,BN,2
|
srlg BN_CUR,BN,2
|
||||||
|
@ -861,10 +858,10 @@ ALIGN_2
|
||||||
.L_FUNC_END:
|
.L_FUNC_END:
|
||||||
/*end*/
|
/*end*/
|
||||||
#if defined(TRMMKERNEL)
|
#if defined(TRMMKERNEL)
|
||||||
ld %f8,32(%r15)
|
ld OFFSET,40(%r15)
|
||||||
lmg %r6,%r13,40(%r15)
|
lmg %r6,%r13,48(%r15)
|
||||||
#else
|
#else
|
||||||
lmg %r6,%r12,40(%r15)
|
lmg %r6,%r12,48(%r15)
|
||||||
#endif
|
#endif
|
||||||
br %r14
|
br %r14
|
||||||
.end
|
.end
|
||||||
|
|
|
@ -73,11 +73,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ASSEMBLER
|
#define ASSEMBLER
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/************** Notes ON IBM abi and IBM assembly**********************************************
|
/*
|
||||||
* General registers r0 and r1 should be used internally whenever possible
|
|
||||||
* General registers r2 to r5 should be second choice
|
|
||||||
* General registers r12 to r15 should only be used for their standard function.
|
|
||||||
* r0 should not be used as address disp register
|
|
||||||
|
|
||||||
BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alphar,FLOAT alphai,FLOAT* ba,FLOAT* bb,
|
BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alphar,FLOAT alphai,FLOAT* ba,FLOAT* bb,
|
||||||
FLOAT* C,BLASLONG ldc, BLASLONG offset)
|
FLOAT* C,BLASLONG ldc, BLASLONG offset)
|
||||||
|
@ -85,7 +82,7 @@ BLASLONG bm,BLASLONG bn,BLASLONG bk,FLOAT alphar,FLOAT alphai,FLOAT* ba,FLOAT* b
|
||||||
offset=stack[176]
|
offset=stack[176]
|
||||||
|
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
/*Note: r0 can not be used as address disp register */
|
||||||
|
|
||||||
#define BM %r2
|
#define BM %r2
|
||||||
#define BM_CUR %r0
|
#define BM_CUR %r0
|
||||||
|
@ -118,21 +115,21 @@ offset=stack[176]
|
||||||
/***********************************ZGEMM**4x4*******************************************************/
|
/***********************************ZGEMM**4x4*******************************************************/
|
||||||
|
|
||||||
PROLOGUE
|
PROLOGUE
|
||||||
#if defined(TRMMKERNEL)
|
#if defined(TRMMKERNEL)
|
||||||
|
std OFFSET ,40(%r15)
|
||||||
stmg %r6,%r13,48(%r15)
|
stmg %r6,%r13,48(%r15)
|
||||||
#else
|
#else
|
||||||
stmg %r6,%r12,48(%r15)
|
stmg %r6,%r12,48(%r15)
|
||||||
#endif
|
#endif
|
||||||
std %f11,8(%r15)
|
std %f9, 128(%r15)
|
||||||
std %f10,16(%r15)
|
std %f10,136(%r15)
|
||||||
std %f9,24(%r15)
|
std %f11,144(%r15)
|
||||||
std %f12,32(%r15)
|
std %f12,152(%r15)
|
||||||
|
|
||||||
lg CIJ, 160(%r15)
|
lg CIJ, 160(%r15)
|
||||||
lg LOCAL_VAR1, 168(%r15)
|
lg LOCAL_VAR1, 168(%r15)
|
||||||
#if defined(TRMMKERNEL)
|
#if defined(TRMMKERNEL)
|
||||||
lg OFF,176(%r15)
|
lg OFF,176(%r15)
|
||||||
std OFFSET,40(%r15)
|
|
||||||
ldgr OFFSET ,OFF
|
ldgr OFFSET ,OFF
|
||||||
#endif
|
#endif
|
||||||
srlg BN_CUR,BN,2
|
srlg BN_CUR,BN,2
|
||||||
|
@ -709,16 +706,18 @@ la B,0(B,LOCAL_VAR2) /*refresh B=B+Bk*1*sizeof(complex) */
|
||||||
ALIGN_2
|
ALIGN_2
|
||||||
.L_FUNC_END:
|
.L_FUNC_END:
|
||||||
/*end*/
|
/*end*/
|
||||||
ld %f11,8(%r15)
|
|
||||||
ld %f10,16(%r15)
|
|
||||||
ld %f9,24(%r15)
|
|
||||||
ld %f12,32(%r15)
|
|
||||||
#if defined(TRMMKERNEL)
|
#if defined(TRMMKERNEL)
|
||||||
ld OFFSET,40(%r15)
|
ld OFFSET,40(%r15)
|
||||||
lmg %r6,%r13,48(%r15)
|
lmg %r6,%r13,48(%r15)
|
||||||
#else
|
#else
|
||||||
lmg %r6,%r12,48(%r15)
|
lmg %r6,%r12,48(%r15)
|
||||||
#endif
|
#endif
|
||||||
|
ld %f9, 128(%r15)
|
||||||
|
ld %f10,136(%r15)
|
||||||
|
ld %f11,144(%r15)
|
||||||
|
ld %f12,152(%r15)
|
||||||
br %r14
|
br %r14
|
||||||
.end
|
.end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue