Skip to content

Commit d2093a4

Browse files
authored
Merge pull request #2277 from martin-frbg/issue2275
Rewrite ARMV8 code to allow cross-compilation for IOS
2 parents aa04b09 + 56837e9 commit d2093a4

File tree

3 files changed

+36
-33
lines changed

3 files changed

+36
-33
lines changed

common_arm64.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,14 @@ static inline int blas_quickdivide(blasint x, blasint y){
103103

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

106-
#define PROLOGUE \
107-
.text ;\
108-
.align 4 ;\
109-
.global REALNAME ;\
110-
.type REALNAME, %function ;\
106+
.macro PROLOGUE
107+
.text ;
108+
.p2align 2 ;
109+
.global REALNAME ;
110+
.type REALNAME, %function ;
111111
REALNAME:
112+
.endm
113+
112114

113115
#define EPILOGUE
114116

kernel/arm64/nrm2.S

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,37 +54,38 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5454
#if !defined(DOUBLE)
5555
ldr s4, [X], #4
5656
fcmp s4, REGZERO
57-
beq KERNEL_F1_NEXT_\@
57+
beq 2f /* KERNEL_F1_NEXT_\@ */
58+
beq 2f
5859
fabs s4, s4
5960
fcmp SCALE, s4
60-
bge KERNEL_F1_SCALE_GE_X_\@
61+
bge 1f /* KERNEL_F1_SCALE_GE_X_\@ */
6162
fdiv s2, SCALE, s4
6263
fmul s2, s2, s2
6364
fmul s3, SSQ, s2
6465
fadd SSQ, REGONE, s3
6566
fmov SCALE, s4
66-
b KERNEL_F1_NEXT_\@
67-
KERNEL_F1_SCALE_GE_X_\@:
67+
b 2f /* KERNEL_F1_NEXT_\@ */
68+
1: /* KERNEL_F1_SCALE_GE_X_\@: */
6869
fdiv s2, s4, SCALE
6970
fmla SSQ, s2, v2.s[0]
7071
#else
7172
ldr d4, [X], #8
7273
fcmp d4, REGZERO
73-
beq KERNEL_F1_NEXT_\@
74+
beq 2f /* KERNEL_F1_NEXT_\@ */
7475
fabs d4, d4
7576
fcmp SCALE, d4
76-
bge KERNEL_F1_SCALE_GE_X_\@
77+
bge 1f /* KERNEL_F1_SCALE_GE_X_\@ */
7778
fdiv d2, SCALE, d4
7879
fmul d2, d2, d2
7980
fmul d3, SSQ, d2
8081
fadd SSQ, REGONE, d3
8182
fmov SCALE, d4
82-
b KERNEL_F1_NEXT_\@
83-
KERNEL_F1_SCALE_GE_X_\@:
83+
b 2f /* KERNEL_F1_NEXT_\@ */
84+
1: /* KERNEL_F1_SCALE_GE_X_\@: */
8485
fdiv d2, d4, SCALE
8586
fmla SSQ, d2, v2.d[0]
8687
#endif
87-
KERNEL_F1_NEXT_\@:
88+
2: /* KERNEL_F1_NEXT_\@: */
8889
.endm
8990

9091
.macro KERNEL_S1

kernel/arm64/znrm2.S

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -54,69 +54,69 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5454
#if !defined(DOUBLE)
5555
ldr s4, [X], #4
5656
fcmp s4, REGZERO
57-
beq KERNEL_F1_NEXT_\@
57+
beq 2f /* KERNEL_F1_NEXT_\@ */
5858
fabs s4, s4
5959
fcmp SCALE, s4
60-
bge KERNEL_F1_SCALE_GE_XR_\@
60+
bge 1f /* KERNEL_F1_SCALE_GE_XR_\@ */
6161
fdiv s2, SCALE, s4
6262
fmul s2, s2, s2
6363
fmul s3, SSQ, s2
6464
fadd SSQ, REGONE, s3
6565
fmov SCALE, s4
66-
b KERNEL_F1_NEXT_\@
67-
KERNEL_F1_SCALE_GE_XR_\@:
66+
b 2f /* KERNEL_F1_NEXT_\@ */
67+
1: /* KERNEL_F1_SCALE_GE_XR_\@: */
6868
fdiv s2, s4, SCALE
6969
fmla SSQ, s2, v2.s[0]
70-
KERNEL_F1_NEXT_\@:
70+
2: /* KERNEL_F1_NEXT_\@: */
7171
ldr s5, [X], #4
7272
fcmp s5, REGZERO
73-
beq KERNEL_F1_END_\@
73+
beq 4f /* KERNEL_F1_END_\@ */
7474
fabs s5, s5
7575
fcmp SCALE, s5
76-
bge KERNEL_F1_SCALE_GE_XI_\@
76+
bge 3f /* KERNEL_F1_SCALE_GE_XI_\@ */
7777
fdiv s2, SCALE, s5
7878
fmul s2, s2, s2
7979
fmul s3, SSQ, s2
8080
fadd SSQ, REGONE, s3
8181
fmov SCALE, s5
82-
b KERNEL_F1_END_\@
83-
KERNEL_F1_SCALE_GE_XI_\@:
82+
b 4f /* KERNEL_F1_END_\@ */
83+
3: /* KERNEL_F1_SCALE_GE_XI_\@: */
8484
fdiv s2, s5, SCALE
8585
fmla SSQ, s2, v2.s[0]
8686
#else
8787
ldr d4, [X], #8
8888
fcmp d4, REGZERO
89-
beq KERNEL_F1_NEXT_\@
89+
beq 2f /* KERNEL_F1_NEXT_\@ */
9090
fabs d4, d4
9191
fcmp SCALE, d4
92-
bge KERNEL_F1_SCALE_GE_XR_\@
92+
bge 1f /* KERNEL_F1_SCALE_GE_XR_\@ */
9393
fdiv d2, SCALE, d4
9494
fmul d2, d2, d2
9595
fmul d3, SSQ, d2
9696
fadd SSQ, REGONE, d3
9797
fmov SCALE, d4
98-
b KERNEL_F1_NEXT_\@
99-
KERNEL_F1_SCALE_GE_XR_\@:
98+
b 2f /* KERNEL_F1_NEXT_\@ */
99+
1: /* KERNEL_F1_SCALE_GE_XR_\@: */
100100
fdiv d2, d4, SCALE
101101
fmla SSQ, d2, v2.d[0]
102-
KERNEL_F1_NEXT_\@:
102+
2: /* KERNEL_F1_NEXT_\@: */
103103
ldr d5, [X], #8
104104
fcmp d5, REGZERO
105-
beq KERNEL_F1_END_\@
105+
beq 4f /* KERNEL_F1_END_\@ */
106106
fabs d5, d5
107107
fcmp SCALE, d5
108-
bge KERNEL_F1_SCALE_GE_XI_\@
108+
bge 3f /* KERNEL_F1_SCALE_GE_XI_\@ */
109109
fdiv d2, SCALE, d5
110110
fmul d2, d2, d2
111111
fmul d3, SSQ, d2
112112
fadd SSQ, REGONE, d3
113113
fmov SCALE, d5
114-
b KERNEL_F1_END_\@
115-
KERNEL_F1_SCALE_GE_XI_\@:
114+
b 4f /* KERNEL_F1_END_\@ */
115+
3: /* KERNEL_F1_SCALE_GE_XI_\@: */
116116
fdiv d2, d5, SCALE
117117
fmla SSQ, d2, v2.d[0]
118118
#endif
119-
KERNEL_F1_END_\@:
119+
4: /* KERNEL_F1_END_\@: */
120120
.endm
121121

122122
.macro KERNEL_S1

0 commit comments

Comments
 (0)