@@ -58,7 +58,14 @@ use stdarch_test::assert_instr;
58
58
#[ target_feature( enable = "crc" ) ]
59
59
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
60
60
#[ cfg_attr( test, assert_instr( crc32b) ) ]
61
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
61
+ #[ cfg_attr(
62
+ target_arch = "arm" ,
63
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
64
+ ) ]
65
+ #[ cfg_attr(
66
+ not( target_arch = "arm" ) ,
67
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
68
+ ) ]
62
69
pub unsafe fn __crc32b ( crc : u32 , data : u8 ) -> u32 {
63
70
crc32b_ ( crc, data as u32 )
64
71
}
@@ -70,7 +77,14 @@ pub unsafe fn __crc32b(crc: u32, data: u8) -> u32 {
70
77
#[ target_feature( enable = "crc" ) ]
71
78
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
72
79
#[ cfg_attr( test, assert_instr( crc32h) ) ]
73
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
80
+ #[ cfg_attr(
81
+ target_arch = "arm" ,
82
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
83
+ ) ]
84
+ #[ cfg_attr(
85
+ not( target_arch = "arm" ) ,
86
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
87
+ ) ]
74
88
pub unsafe fn __crc32h ( crc : u32 , data : u16 ) -> u32 {
75
89
crc32h_ ( crc, data as u32 )
76
90
}
@@ -82,7 +96,14 @@ pub unsafe fn __crc32h(crc: u32, data: u16) -> u32 {
82
96
#[ target_feature( enable = "crc" ) ]
83
97
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
84
98
#[ cfg_attr( test, assert_instr( crc32w) ) ]
85
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
99
+ #[ cfg_attr(
100
+ target_arch = "arm" ,
101
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
102
+ ) ]
103
+ #[ cfg_attr(
104
+ not( target_arch = "arm" ) ,
105
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
106
+ ) ]
86
107
pub unsafe fn __crc32w ( crc : u32 , data : u32 ) -> u32 {
87
108
crc32w_ ( crc, data)
88
109
}
@@ -94,7 +115,14 @@ pub unsafe fn __crc32w(crc: u32, data: u32) -> u32 {
94
115
#[ target_feature( enable = "crc" ) ]
95
116
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
96
117
#[ cfg_attr( test, assert_instr( crc32cb) ) ]
97
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
118
+ #[ cfg_attr(
119
+ target_arch = "arm" ,
120
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
121
+ ) ]
122
+ #[ cfg_attr(
123
+ not( target_arch = "arm" ) ,
124
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
125
+ ) ]
98
126
pub unsafe fn __crc32cb ( crc : u32 , data : u8 ) -> u32 {
99
127
crc32cb_ ( crc, data as u32 )
100
128
}
@@ -106,7 +134,14 @@ pub unsafe fn __crc32cb(crc: u32, data: u8) -> u32 {
106
134
#[ target_feature( enable = "crc" ) ]
107
135
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
108
136
#[ cfg_attr( test, assert_instr( crc32ch) ) ]
109
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
137
+ #[ cfg_attr(
138
+ target_arch = "arm" ,
139
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
140
+ ) ]
141
+ #[ cfg_attr(
142
+ not( target_arch = "arm" ) ,
143
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
144
+ ) ]
110
145
pub unsafe fn __crc32ch ( crc : u32 , data : u16 ) -> u32 {
111
146
crc32ch_ ( crc, data as u32 )
112
147
}
@@ -118,7 +153,14 @@ pub unsafe fn __crc32ch(crc: u32, data: u16) -> u32 {
118
153
#[ target_feature( enable = "crc" ) ]
119
154
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
120
155
#[ cfg_attr( test, assert_instr( crc32cw) ) ]
121
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
156
+ #[ cfg_attr(
157
+ target_arch = "arm" ,
158
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
159
+ ) ]
160
+ #[ cfg_attr(
161
+ not( target_arch = "arm" ) ,
162
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
163
+ ) ]
122
164
pub unsafe fn __crc32cw ( crc : u32 , data : u32 ) -> u32 {
123
165
crc32cw_ ( crc, data)
124
166
}
@@ -130,7 +172,14 @@ pub unsafe fn __crc32cw(crc: u32, data: u32) -> u32 {
130
172
#[ target_feature( enable = "crc" ) ]
131
173
#[ cfg( any( target_arch = "aarch64" , target_arch = "arm64ec" ) ) ]
132
174
#[ cfg_attr( test, assert_instr( crc32x) ) ]
133
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
175
+ #[ cfg_attr(
176
+ target_arch = "arm" ,
177
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
178
+ ) ]
179
+ #[ cfg_attr(
180
+ not( target_arch = "arm" ) ,
181
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
182
+ ) ]
134
183
pub unsafe fn __crc32d ( crc : u32 , data : u64 ) -> u32 {
135
184
crc32x_ ( crc, data)
136
185
}
@@ -142,7 +191,14 @@ pub unsafe fn __crc32d(crc: u32, data: u64) -> u32 {
142
191
#[ target_feature( enable = "crc" ) ]
143
192
#[ cfg( target_arch = "arm" ) ]
144
193
#[ cfg_attr( test, assert_instr( crc32w) ) ]
145
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
194
+ #[ cfg_attr(
195
+ target_arch = "arm" ,
196
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
197
+ ) ]
198
+ #[ cfg_attr(
199
+ not( target_arch = "arm" ) ,
200
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
201
+ ) ]
146
202
pub unsafe fn __crc32d ( crc : u32 , data : u64 ) -> u32 {
147
203
// On 32-bit ARM this intrinsic emits a chain of two `crc32_w` instructions
148
204
// and truncates the data to 32 bits in both clang and gcc
@@ -159,7 +215,14 @@ pub unsafe fn __crc32d(crc: u32, data: u64) -> u32 {
159
215
#[ target_feature( enable = "crc" ) ]
160
216
#[ cfg( any( target_arch = "aarch64" , target_arch = "arm64ec" ) ) ]
161
217
#[ cfg_attr( test, assert_instr( crc32cx) ) ]
162
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
218
+ #[ cfg_attr(
219
+ target_arch = "arm" ,
220
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
221
+ ) ]
222
+ #[ cfg_attr(
223
+ not( target_arch = "arm" ) ,
224
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
225
+ ) ]
163
226
pub unsafe fn __crc32cd ( crc : u32 , data : u64 ) -> u32 {
164
227
crc32cx_ ( crc, data)
165
228
}
@@ -171,7 +234,14 @@ pub unsafe fn __crc32cd(crc: u32, data: u64) -> u32 {
171
234
#[ target_feature( enable = "crc" ) ]
172
235
#[ cfg( target_arch = "arm" ) ]
173
236
#[ cfg_attr( test, assert_instr( crc32cw) ) ]
174
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
237
+ #[ cfg_attr(
238
+ target_arch = "arm" ,
239
+ unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" )
240
+ ) ]
241
+ #[ cfg_attr(
242
+ not( target_arch = "arm" ) ,
243
+ stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" )
244
+ ) ]
175
245
pub unsafe fn __crc32cd ( crc : u32 , data : u64 ) -> u32 {
176
246
// On 32-bit ARM this intrinsic emits a chain of two `crc32_cw` instructions
177
247
// and truncates the data to 32 bits in both clang and gcc
0 commit comments