@@ -58,7 +58,8 @@ 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( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
62
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
62
63
pub unsafe fn __crc32b ( crc : u32 , data : u8 ) -> u32 {
63
64
crc32b_ ( crc, data as u32 )
64
65
}
@@ -70,7 +71,8 @@ pub unsafe fn __crc32b(crc: u32, data: u8) -> u32 {
70
71
#[ target_feature( enable = "crc" ) ]
71
72
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
72
73
#[ cfg_attr( test, assert_instr( crc32h) ) ]
73
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
74
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
75
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
74
76
pub unsafe fn __crc32h ( crc : u32 , data : u16 ) -> u32 {
75
77
crc32h_ ( crc, data as u32 )
76
78
}
@@ -82,7 +84,8 @@ pub unsafe fn __crc32h(crc: u32, data: u16) -> u32 {
82
84
#[ target_feature( enable = "crc" ) ]
83
85
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
84
86
#[ cfg_attr( test, assert_instr( crc32w) ) ]
85
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
87
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
88
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
86
89
pub unsafe fn __crc32w ( crc : u32 , data : u32 ) -> u32 {
87
90
crc32w_ ( crc, data)
88
91
}
@@ -94,7 +97,8 @@ pub unsafe fn __crc32w(crc: u32, data: u32) -> u32 {
94
97
#[ target_feature( enable = "crc" ) ]
95
98
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
96
99
#[ cfg_attr( test, assert_instr( crc32cb) ) ]
97
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
100
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
101
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
98
102
pub unsafe fn __crc32cb ( crc : u32 , data : u8 ) -> u32 {
99
103
crc32cb_ ( crc, data as u32 )
100
104
}
@@ -106,7 +110,8 @@ pub unsafe fn __crc32cb(crc: u32, data: u8) -> u32 {
106
110
#[ target_feature( enable = "crc" ) ]
107
111
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
108
112
#[ cfg_attr( test, assert_instr( crc32ch) ) ]
109
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
113
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
114
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
110
115
pub unsafe fn __crc32ch ( crc : u32 , data : u16 ) -> u32 {
111
116
crc32ch_ ( crc, data as u32 )
112
117
}
@@ -118,7 +123,8 @@ pub unsafe fn __crc32ch(crc: u32, data: u16) -> u32 {
118
123
#[ target_feature( enable = "crc" ) ]
119
124
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
120
125
#[ cfg_attr( test, assert_instr( crc32cw) ) ]
121
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
126
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
127
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
122
128
pub unsafe fn __crc32cw ( crc : u32 , data : u32 ) -> u32 {
123
129
crc32cw_ ( crc, data)
124
130
}
@@ -130,7 +136,8 @@ pub unsafe fn __crc32cw(crc: u32, data: u32) -> u32 {
130
136
#[ target_feature( enable = "crc" ) ]
131
137
#[ cfg( any( target_arch = "aarch64" , target_arch = "arm64ec" ) ) ]
132
138
#[ cfg_attr( test, assert_instr( crc32x) ) ]
133
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
139
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
140
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
134
141
pub unsafe fn __crc32d ( crc : u32 , data : u64 ) -> u32 {
135
142
crc32x_ ( crc, data)
136
143
}
@@ -142,7 +149,8 @@ pub unsafe fn __crc32d(crc: u32, data: u64) -> u32 {
142
149
#[ target_feature( enable = "crc" ) ]
143
150
#[ cfg( target_arch = "arm" ) ]
144
151
#[ cfg_attr( test, assert_instr( crc32w) ) ]
145
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
152
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
153
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
146
154
pub unsafe fn __crc32d ( crc : u32 , data : u64 ) -> u32 {
147
155
// On 32-bit ARM this intrinsic emits a chain of two `crc32_w` instructions
148
156
// and truncates the data to 32 bits in both clang and gcc
@@ -159,7 +167,8 @@ pub unsafe fn __crc32d(crc: u32, data: u64) -> u32 {
159
167
#[ target_feature( enable = "crc" ) ]
160
168
#[ cfg( any( target_arch = "aarch64" , target_arch = "arm64ec" ) ) ]
161
169
#[ cfg_attr( test, assert_instr( crc32cx) ) ]
162
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
170
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
171
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
163
172
pub unsafe fn __crc32cd ( crc : u32 , data : u64 ) -> u32 {
164
173
crc32cx_ ( crc, data)
165
174
}
@@ -171,7 +180,8 @@ pub unsafe fn __crc32cd(crc: u32, data: u64) -> u32 {
171
180
#[ target_feature( enable = "crc" ) ]
172
181
#[ cfg( target_arch = "arm" ) ]
173
182
#[ cfg_attr( test, assert_instr( crc32cw) ) ]
174
- #[ unstable( feature = "stdarch_arm_crc32" , issue = "117215" ) ]
183
+ #[ cfg_attr( target_arch = "arm" , unstable( feature = "stdarch_aarch32_crc32" , issue = "125085" ) ) ]
184
+ #[ cfg_attr( not( target_arch = "arm" ) , stable( feature = "stdarch_aarch64_crc32" , since = "1.80.0" ) ) ]
175
185
pub unsafe fn __crc32cd ( crc : u32 , data : u64 ) -> u32 {
176
186
// On 32-bit ARM this intrinsic emits a chain of two `crc32_cw` instructions
177
187
// and truncates the data to 32 bits in both clang and gcc
0 commit comments