@@ -136,7 +136,7 @@ macro_rules! compare_and_swap {
136
136
expected: int_ty!( $bytes) , desired: int_ty!( $bytes) , ptr: * mut int_ty!( $bytes)
137
137
) -> int_ty!( $bytes) {
138
138
// We can't use `AtomicI8::compare_and_swap`; we *are* compare_and_swap.
139
- unsafe { core:: arch:: asm ! {
139
+ unsafe { core:: arch:: naked_asm ! {
140
140
// UXT s(tmp0), s(0)
141
141
concat!( uxt!( $bytes) , " " , reg!( $bytes, 16 ) , ", " , reg!( $bytes, 0 ) ) ,
142
142
"0:" ,
@@ -150,7 +150,6 @@ macro_rules! compare_and_swap {
150
150
"cbnz w17, 0b" ,
151
151
"1:" ,
152
152
"ret" ,
153
- options( noreturn)
154
153
} }
155
154
}
156
155
}
@@ -166,7 +165,7 @@ macro_rules! compare_and_swap_i128 {
166
165
pub unsafe extern "C" fn $name (
167
166
expected: i128 , desired: i128 , ptr: * mut i128
168
167
) -> i128 {
169
- unsafe { core:: arch:: asm ! {
168
+ unsafe { core:: arch:: naked_asm ! {
170
169
"mov x16, x0" ,
171
170
"mov x17, x1" ,
172
171
"0:" ,
@@ -180,7 +179,6 @@ macro_rules! compare_and_swap_i128 {
180
179
"cbnz w15, 0b" ,
181
180
"1:" ,
182
181
"ret" ,
183
- options( noreturn)
184
182
} }
185
183
}
186
184
}
@@ -196,7 +194,7 @@ macro_rules! swap {
196
194
pub unsafe extern "C" fn $name (
197
195
left: int_ty!( $bytes) , right_ptr: * mut int_ty!( $bytes)
198
196
) -> int_ty!( $bytes) {
199
- unsafe { core:: arch:: asm ! {
197
+ unsafe { core:: arch:: naked_asm ! {
200
198
// mov s(tmp0), s(0)
201
199
concat!( "mov " , reg!( $bytes, 16 ) , ", " , reg!( $bytes, 0 ) ) ,
202
200
"0:" ,
@@ -206,7 +204,6 @@ macro_rules! swap {
206
204
concat!( stxr!( $ordering, $bytes) , " w17, " , reg!( $bytes, 16 ) , ", [x1]" ) ,
207
205
"cbnz w17, 0b" ,
208
206
"ret" ,
209
- options( noreturn)
210
207
} }
211
208
}
212
209
}
@@ -222,7 +219,7 @@ macro_rules! fetch_op {
222
219
pub unsafe extern "C" fn $name (
223
220
val: int_ty!( $bytes) , ptr: * mut int_ty!( $bytes)
224
221
) -> int_ty!( $bytes) {
225
- unsafe { core:: arch:: asm ! {
222
+ unsafe { core:: arch:: naked_asm ! {
226
223
// mov s(tmp0), s(0)
227
224
concat!( "mov " , reg!( $bytes, 16 ) , ", " , reg!( $bytes, 0 ) ) ,
228
225
"0:" ,
@@ -234,7 +231,6 @@ macro_rules! fetch_op {
234
231
concat!( stxr!( $ordering, $bytes) , " w15, " , reg!( $bytes, 17 ) , ", [x1]" ) ,
235
232
"cbnz w15, 0b" ,
236
233
"ret" ,
237
- options( noreturn)
238
234
} }
239
235
}
240
236
}
0 commit comments