Skip to content

Commit 742787c

Browse files
committed
Use +sme for Apple
Signed-off-by: Taiju Yamada <[email protected]>
1 parent 9b35322 commit 742787c

17 files changed

+216
-21
lines changed

erasure_code/aarch64/ec_aarch64_dispatcher.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ DEFINE_INTERFACE_DISPATCHER(gf_vect_dot_prod)
6565
if (auxval & HWCAP_ASIMD)
6666
return gf_vect_dot_prod_neon;
6767
#elif defined(__APPLE__)
68-
if (sysctlEnabled(SYSCTL_SVE_KEY))
68+
if (sysctlEnabled(SYSCTL_SME_KEY))
6969
return gf_vect_dot_prod_sve;
7070
return gf_vect_dot_prod_neon;
7171
#endif
@@ -82,7 +82,7 @@ DEFINE_INTERFACE_DISPATCHER(gf_vect_mad)
8282
if (auxval & HWCAP_ASIMD)
8383
return gf_vect_mad_neon;
8484
#elif defined(__APPLE__)
85-
if (sysctlEnabled(SYSCTL_SVE_KEY))
85+
if (sysctlEnabled(SYSCTL_SME_KEY))
8686
return gf_vect_mad_sve;
8787
return gf_vect_mad_neon;
8888
#endif
@@ -99,7 +99,7 @@ DEFINE_INTERFACE_DISPATCHER(ec_encode_data)
9999
if (auxval & HWCAP_ASIMD)
100100
return ec_encode_data_neon;
101101
#elif defined(__APPLE__)
102-
if (sysctlEnabled(SYSCTL_SVE_KEY))
102+
if (sysctlEnabled(SYSCTL_SME_KEY))
103103
return ec_encode_data_sve;
104104
return ec_encode_data_neon;
105105
#endif
@@ -116,7 +116,7 @@ DEFINE_INTERFACE_DISPATCHER(ec_encode_data_update)
116116
if (auxval & HWCAP_ASIMD)
117117
return ec_encode_data_update_neon;
118118
#elif defined(__APPLE__)
119-
if (sysctlEnabled(SYSCTL_SVE_KEY))
119+
if (sysctlEnabled(SYSCTL_SME_KEY))
120120
return ec_encode_data_update_sve;
121121
return ec_encode_data_update_neon;
122122
#endif
@@ -133,7 +133,7 @@ DEFINE_INTERFACE_DISPATCHER(gf_vect_mul)
133133
if (auxval & HWCAP_ASIMD)
134134
return gf_vect_mul_neon;
135135
#elif defined(__APPLE__)
136-
if (sysctlEnabled(SYSCTL_SVE_KEY))
136+
if (sysctlEnabled(SYSCTL_SME_KEY))
137137
return gf_vect_mul_sve;
138138
return gf_vect_mul_neon;
139139
#endif

erasure_code/aarch64/gf_2vect_dot_prod_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -86,6 +90,9 @@ q_gft2_hi .req q18
8690
z_dest2 .req z27
8791

8892
cdecl(gf_2vect_dot_prod_sve):
93+
#ifdef __APPLE__
94+
smstart sm
95+
#endif
8996
/* less than 16 bytes, return_fail */
9097
cmp x_len, #16
9198
blt .return_fail
@@ -98,7 +105,7 @@ cdecl(gf_2vect_dot_prod_sve):
98105
/* Loop 1: x_len, vector length */
99106
.Lloopsve_vl:
100107
whilelo p0.b, x_pos, x_len
101-
b.none .return_pass
108+
b.eq .return_pass
102109

103110
mov x_vec_i, #0 /* clear x_vec_i */
104111
ldr x_ptr, [x_src, x_vec_i] /* x_ptr: src base addr. */
@@ -161,8 +168,14 @@ cdecl(gf_2vect_dot_prod_sve):
161168

162169
.return_pass:
163170
mov w_ret, #0
171+
#ifdef __APPLE__
172+
smstop sm
173+
#endif
164174
ret
165175

166176
.return_fail:
167177
mov w_ret, #1
178+
#ifdef __APPLE__
179+
smstop sm
180+
#endif
168181
ret

erasure_code/aarch64/gf_2vect_mad_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -82,6 +86,9 @@ q_gft2_hi .req q18
8286
z_dest2 .req z27
8387

8488
cdecl(gf_2vect_mad_sve):
89+
#ifdef __APPLE__
90+
smstart sm
91+
#endif
8592
/* less than 16 bytes, return_fail */
8693
cmp x_len, #16
8794
blt .return_fail
@@ -104,7 +111,7 @@ cdecl(gf_2vect_mad_sve):
104111
/* vector length agnostic */
105112
.Lloopsve_vl:
106113
whilelo p0.b, x_pos, x_len
107-
b.none .return_pass
114+
b.eq .return_pass
108115

109116
/* prefetch dest data */
110117
prfb pldl2strm, p0, [x_dest1, x_pos]
@@ -145,8 +152,14 @@ cdecl(gf_2vect_mad_sve):
145152

146153
.return_pass:
147154
mov w_ret, #0
155+
#ifdef __APPLE__
156+
smstop sm
157+
#endif
148158
ret
149159

150160
.return_fail:
151161
mov w_ret, #1
162+
#ifdef __APPLE__
163+
smstop sm
164+
#endif
152165
ret

erasure_code/aarch64/gf_3vect_dot_prod_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -94,6 +98,9 @@ z_dest2 .req z27
9498
z_dest3 .req z28
9599

96100
cdecl(gf_3vect_dot_prod_sve):
101+
#ifdef __APPLE__
102+
smstart sm
103+
#endif
97104
/* less than 16 bytes, return_fail */
98105
cmp x_len, #16
99106
blt .return_fail
@@ -107,7 +114,7 @@ cdecl(gf_3vect_dot_prod_sve):
107114
/* Loop 1: x_len, vector length */
108115
.Lloopsve_vl:
109116
whilelo p0.b, x_pos, x_len
110-
b.none .return_pass
117+
b.eq .return_pass
111118

112119
mov x_vec_i, #0 /* clear x_vec_i */
113120
ldr x_ptr, [x_src, x_vec_i] /* x_ptr: src base addr. */
@@ -182,8 +189,14 @@ cdecl(gf_3vect_dot_prod_sve):
182189

183190
.return_pass:
184191
mov w_ret, #0
192+
#ifdef __APPLE__
193+
smstop sm
194+
#endif
185195
ret
186196

187197
.return_fail:
188198
mov w_ret, #1
199+
#ifdef __APPLE__
200+
smstop sm
201+
#endif
189202
ret

erasure_code/aarch64/gf_3vect_mad_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -89,6 +93,9 @@ z_dest2 .req z27
8993
z_dest3 .req z28
9094

9195
cdecl(gf_3vect_mad_sve):
96+
#ifdef __APPLE__
97+
smstart sm
98+
#endif
9299
/* less than 16 bytes, return_fail */
93100
cmp x_len, #16
94101
blt .return_fail
@@ -115,7 +122,7 @@ cdecl(gf_3vect_mad_sve):
115122
/* vector length agnostic */
116123
.Lloopsve_vl:
117124
whilelo p0.b, x_pos, x_len
118-
b.none .return_pass
125+
b.eq .return_pass
119126

120127
/* dest data prefetch */
121128
prfb pldl2strm, p0, [x_dest1, x_pos]
@@ -168,8 +175,14 @@ cdecl(gf_3vect_mad_sve):
168175

169176
.return_pass:
170177
mov w_ret, #0
178+
#ifdef __APPLE__
179+
smstop sm
180+
#endif
171181
ret
172182

173183
.return_fail:
174184
mov w_ret, #1
185+
#ifdef __APPLE__
186+
smstop sm
187+
#endif
175188
ret

erasure_code/aarch64/gf_4vect_dot_prod_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -102,6 +106,9 @@ z_dest3 .req z28
102106
z_dest4 .req z29
103107

104108
cdecl(gf_4vect_dot_prod_sve):
109+
#ifdef __APPLE__
110+
smstart sm
111+
#endif
105112
/* less than 16 bytes, return_fail */
106113
cmp x_len, #16
107114
blt .return_fail
@@ -115,7 +122,7 @@ cdecl(gf_4vect_dot_prod_sve):
115122
/* Loop 1: x_len, vector length */
116123
.Lloopsve_vl:
117124
whilelo p0.b, x_pos, x_len
118-
b.none .return_pass
125+
b.eq .return_pass
119126

120127
mov x_vec_i, #0 /* clear x_vec_i */
121128
ldr x_ptr, [x_src, x_vec_i] /* x_ptr: src base addr. */
@@ -201,8 +208,14 @@ cdecl(gf_4vect_dot_prod_sve):
201208

202209
.return_pass:
203210
mov w_ret, #0
211+
#ifdef __APPLE__
212+
smstop sm
213+
#endif
204214
ret
205215

206216
.return_fail:
207217
mov w_ret, #1
218+
#ifdef __APPLE__
219+
smstop sm
220+
#endif
208221
ret

erasure_code/aarch64/gf_4vect_mad_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -96,6 +100,9 @@ z_dest3 .req z28
96100
z_dest4 .req z29
97101

98102
cdecl(gf_4vect_mad_sve):
103+
#ifdef __APPLE__
104+
smstart sm
105+
#endif
99106
/* less than 16 bytes, return_fail */
100107
cmp x_len, #16
101108
blt .return_fail
@@ -126,7 +133,7 @@ cdecl(gf_4vect_mad_sve):
126133
/* vector length agnostic */
127134
.Lloopsve_vl:
128135
whilelo p0.b, x_pos, x_len
129-
b.none .return_pass
136+
b.eq .return_pass
130137

131138
prfb pldl2strm, p0, [x_dest1, x_pos]
132139
prfb pldl2strm, p0, [x_dest2, x_pos]
@@ -187,8 +194,14 @@ cdecl(gf_4vect_mad_sve):
187194

188195
.return_pass:
189196
mov w_ret, #0
197+
#ifdef __APPLE__
198+
smstop sm
199+
#endif
190200
ret
191201

192202
.return_fail:
193203
mov w_ret, #1
204+
#ifdef __APPLE__
205+
smstop sm
206+
#endif
194207
ret

erasure_code/aarch64/gf_5vect_dot_prod_sve.S

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
**********************************************************************/
2929
.text
3030
.align 6
31+
#ifdef __APPLE__
32+
.arch armv8-a+sme
33+
#else
3134
.arch armv8-a+sve
35+
#endif
3236

3337
#include "../include/aarch64_label.h"
3438

@@ -110,6 +114,9 @@ z_dest4 .req z29
110114
z_dest5 .req z30
111115

112116
cdecl(gf_5vect_dot_prod_sve):
117+
#ifdef __APPLE__
118+
smstart sm
119+
#endif
113120
/* less than 16 bytes, return_fail */
114121
cmp x_len, #16
115122
blt .return_fail
@@ -128,7 +135,7 @@ cdecl(gf_5vect_dot_prod_sve):
128135
/* Loop 1: x_len, vector length */
129136
.Lloopsve_vl:
130137
whilelo p0.b, x_pos, x_len
131-
b.none .return_pass
138+
b.eq .return_pass
132139

133140
mov x_vec_i, #0 /* clear x_vec_i */
134141
ldr x_ptr, [x_src, x_vec_i] /* x_ptr: src base addr. */
@@ -230,8 +237,14 @@ cdecl(gf_5vect_dot_prod_sve):
230237
add sp, sp, #16
231238

232239
mov w_ret, #0
240+
#ifdef __APPLE__
241+
smstop sm
242+
#endif
233243
ret
234244

235245
.return_fail:
236246
mov w_ret, #1
247+
#ifdef __APPLE__
248+
smstop sm
249+
#endif
237250
ret

0 commit comments

Comments
 (0)