Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions common_arm64.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,12 @@ static inline int blas_quickdivide(blasint x, blasint y){

#if defined(ASSEMBLER) && !defined(NEEDPARAM)

#if defined(__APPLE__)
#define L(x) L##x
#else
#define L(x) .L##x
#endif

.macro PROLOGUE
.text ;
.p2align 2 ;
Expand All @@ -162,7 +168,11 @@ static inline int blas_quickdivide(blasint x, blasint y){
.endm


#if defined(__APPLE__)
#define EPILOGUE .subsections_via_symbols
#else
#define EPILOGUE
#endif

#define PROFCODE

Expand Down
6 changes: 6 additions & 0 deletions common_x86_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,12 @@ static __inline unsigned int blas_quickdivide(unsigned int x, unsigned int y){
#define REALNAME ASMFNAME
#endif

#ifdef OS_DARWIN
#define L(x) L##x
#else
#define L(x) .L##x
#endif

#ifdef OS_DARWIN
#define PROLOGUE .text;.align 5; .globl REALNAME; REALNAME:
#define PROLOGUE_EXPORT .text;.align 5; .globl REALNAME; REALNAME:
Expand Down
50 changes: 25 additions & 25 deletions kernel/arm64/amax.S
Original file line number Diff line number Diff line change
Expand Up @@ -160,88 +160,88 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PROLOGUE

cmp N, xzr
ble .Lamax_kernel_zero
ble L(amax_kernel_zero)
cmp INC_X, xzr
ble .Lamax_kernel_zero
ble L(amax_kernel_zero)

cmp INC_X, #1
bne .Lamax_kernel_S_BEGIN
bne L(amax_kernel_S_BEGIN)

.Lamax_kernel_F_BEGIN:
L(amax_kernel_F_BEGIN):

asr I, N, #2
cmp I, xzr
beq .Lamax_kernel_F1_INIT
beq L(amax_kernel_F1_INIT)

INIT_F4
subs I, I, #1
beq .Lamax_kernel_F1
beq L(amax_kernel_F1)

.Lamax_kernel_F4:
L(amax_kernel_F4):

KERNEL_F4

subs I, I, #1
bne .Lamax_kernel_F4
bne L(amax_kernel_F4)

.Lamax_kernel_F1:
L(amax_kernel_F1):

ands I, N, #3
ble .Lamax_kernel_L999
ble L(amax_kernel_L999)

.Lamax_kernel_F10:
L(amax_kernel_F10):

KERNEL_F1

subs I, I, #1
bne .Lamax_kernel_F10
bne L(amax_kernel_F10)

ret

.Lamax_kernel_F1_INIT:
L(amax_kernel_F1_INIT):

INIT_F1
subs N, N, #1
b .Lamax_kernel_F1
b L(amax_kernel_F1)

.Lamax_kernel_S_BEGIN:
L(amax_kernel_S_BEGIN):

INIT_S

subs N, N, #1
ble .Lamax_kernel_L999
ble L(amax_kernel_L999)

asr I, N, #2
cmp I, xzr
ble .Lamax_kernel_S1
ble L(amax_kernel_S1)

.Lamax_kernel_S4:
L(amax_kernel_S4):

KERNEL_S1
KERNEL_S1
KERNEL_S1
KERNEL_S1

subs I, I, #1
bne .Lamax_kernel_S4
bne L(amax_kernel_S4)

.Lamax_kernel_S1:
L(amax_kernel_S1):

ands I, N, #3
ble .Lamax_kernel_L999
ble L(amax_kernel_L999)

.Lamax_kernel_S10:
L(amax_kernel_S10):

KERNEL_S1

subs I, I, #1
bne .Lamax_kernel_S10
bne L(amax_kernel_S10)

.Lamax_kernel_L999:
L(amax_kernel_L999):

ret

.Lamax_kernel_zero:
L(amax_kernel_zero):

fmov MAXF, REG0
ret
Expand Down
40 changes: 20 additions & 20 deletions kernel/arm64/asum.S
Original file line number Diff line number Diff line change
Expand Up @@ -122,72 +122,72 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endif

cmp N, xzr
ble .Lasum_kernel_L999
ble L(asum_kernel_L999)
cmp INC_X, xzr
ble .Lasum_kernel_L999
ble L(asum_kernel_L999)

cmp INC_X, #1
bne .Lasum_kernel_S_BEGIN
bne L(asum_kernel_S_BEGIN)

.Lasum_kernel_F_BEGIN:
L(asum_kernel_F_BEGIN):

asr I, N, #3
cmp I, xzr
beq .Lasum_kernel_F1
beq L(asum_kernel_F1)

.Lasum_kernel_F8:
L(asum_kernel_F8):

KERNEL_F8

subs I, I, #1
bne .Lasum_kernel_F8
bne L(asum_kernel_F8)

KERNEL_F8_FINALIZE

.Lasum_kernel_F1:
L(asum_kernel_F1):

ands I, N, #7
ble .Lasum_kernel_L999
ble L(asum_kernel_L999)

.Lasum_kernel_F10:
L(asum_kernel_F10):

KERNEL_F1

subs I, I, #1
bne .Lasum_kernel_F10
bne L(asum_kernel_F10)

.Lasum_kernel_L999:
L(asum_kernel_L999):
ret

.Lasum_kernel_S_BEGIN:
L(asum_kernel_S_BEGIN):

INIT_S

asr I, N, #2
cmp I, xzr
ble .Lasum_kernel_S1
ble L(asum_kernel_S1)

.Lasum_kernel_S4:
L(asum_kernel_S4):

KERNEL_S1
KERNEL_S1
KERNEL_S1
KERNEL_S1

subs I, I, #1
bne .Lasum_kernel_S4
bne L(asum_kernel_S4)

.Lasum_kernel_S1:
L(asum_kernel_S1):

ands I, N, #3
ble .Lasum_kernel_L999
ble L(asum_kernel_L999)

.Lasum_kernel_S10:
L(asum_kernel_S10):

KERNEL_S1

subs I, I, #1
bne .Lasum_kernel_S10
bne L(asum_kernel_S10)

ret

Expand Down
44 changes: 23 additions & 21 deletions kernel/arm64/axpy.S
Original file line number Diff line number Diff line change
Expand Up @@ -135,75 +135,77 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PROLOGUE

cmp N, xzr
ble .Laxpy_kernel_L999
ble L(axpy_kernel_L999)

fcmp DA, #0.0
beq .Laxpy_kernel_L999
beq L(axpy_kernel_L999)

cmp INC_X, #1
bne .Laxpy_kernel_S_BEGIN
bne L(axpy_kernel_S_BEGIN)
cmp INC_Y, #1
bne .Laxpy_kernel_S_BEGIN
bne L(axpy_kernel_S_BEGIN)

.Laxpy_kernel_F_BEGIN:
L(axpy_kernel_F_BEGIN):

asr I, N, #3
cmp I, xzr
beq .Laxpy_kernel_F1
beq L(axpy_kernel_F1)

.Laxpy_kernel_F8:
L(axpy_kernel_F8):

KERNEL_F8

subs I, I, #1
bne .Laxpy_kernel_F8
bne L(axpy_kernel_F8)

.Laxpy_kernel_F1:
L(axpy_kernel_F1):

ands I, N, #7
ble .Laxpy_kernel_L999
ble L(axpy_kernel_L999)

.Laxpy_kernel_F10:
L(axpy_kernel_F10):

KERNEL_F1

subs I, I, #1
bne .Laxpy_kernel_F10
bne L(axpy_kernel_F10)

mov w0, wzr
ret

.Laxpy_kernel_S_BEGIN:
L(axpy_kernel_S_BEGIN):

INIT_S

asr I, N, #2
cmp I, xzr
ble .Laxpy_kernel_S1
ble L(axpy_kernel_S1)

.Laxpy_kernel_S4:
L(axpy_kernel_S4):

KERNEL_S1
KERNEL_S1
KERNEL_S1
KERNEL_S1

subs I, I, #1
bne .Laxpy_kernel_S4
bne L(axpy_kernel_S4)

.Laxpy_kernel_S1:
L(axpy_kernel_S1):

ands I, N, #3
ble .Laxpy_kernel_L999
ble L(axpy_kernel_L999)

.Laxpy_kernel_S10:
L(axpy_kernel_S10):

KERNEL_S1

subs I, I, #1
bne .Laxpy_kernel_S10
bne L(axpy_kernel_S10)

.Laxpy_kernel_L999:
L(axpy_kernel_L999):

mov w0, wzr
ret

EPILOGUE
Loading