@@ -164,6 +164,7 @@ pub trait TyVisitor {
164
164
fn visit_self ( & mut self ) -> bool ;
165
165
}
166
166
167
+ #[ cfg( stage0) ]
167
168
extern "rust-intrinsic" {
168
169
pub fn atomic_cxchg < T > ( dst : & mut T , old : T , src : T ) -> T ;
169
170
pub fn atomic_cxchg_acq < T > ( dst : & mut T , old : T , src : T ) -> T ;
@@ -244,6 +245,93 @@ extern "rust-intrinsic" {
244
245
pub fn atomic_umax_rel < T > ( dst : & mut T , src : T ) -> T ;
245
246
pub fn atomic_umax_acqrel < T > ( dst : & mut T , src : T ) -> T ;
246
247
pub fn atomic_umax_relaxed < T > ( dst : & mut T , src : T ) -> T ;
248
+ }
249
+
250
+ #[ cfg( not( stage0) ) ]
251
+ extern "rust-intrinsic" {
252
+
253
+ pub fn atomic_cxchg < T > ( dst : & T , old : T , src : T ) -> T ;
254
+ pub fn atomic_cxchg_acq < T > ( dst : & T , old : T , src : T ) -> T ;
255
+ pub fn atomic_cxchg_rel < T > ( dst : & T , old : T , src : T ) -> T ;
256
+ pub fn atomic_cxchg_acqrel < T > ( dst : & T , old : T , src : T ) -> T ;
257
+ pub fn atomic_cxchg_relaxed < T > ( dst : & T , old : T , src : T ) -> T ;
258
+
259
+ pub fn atomic_load < T > ( src : & T ) -> T ;
260
+ pub fn atomic_load_acq < T > ( src : & T ) -> T ;
261
+ pub fn atomic_load_relaxed < T > ( src : & T ) -> T ;
262
+
263
+ pub fn atomic_store < T > ( dst : & T , val : T ) ;
264
+ pub fn atomic_store_rel < T > ( dst : & T , val : T ) ;
265
+ pub fn atomic_store_relaxed < T > ( dst : & T , val : T ) ;
266
+
267
+ pub fn atomic_xchg < T > ( dst : & T , src : T ) -> T ;
268
+ pub fn atomic_xchg_acq < T > ( dst : & T , src : T ) -> T ;
269
+ pub fn atomic_xchg_rel < T > ( dst : & T , src : T ) -> T ;
270
+ pub fn atomic_xchg_acqrel < T > ( dst : & T , src : T ) -> T ;
271
+ pub fn atomic_xchg_relaxed < T > ( dst : & T , src : T ) -> T ;
272
+
273
+ pub fn atomic_xadd < T > ( dst : & T , src : T ) -> T ;
274
+ pub fn atomic_xadd_acq < T > ( dst : & T , src : T ) -> T ;
275
+ pub fn atomic_xadd_rel < T > ( dst : & T , src : T ) -> T ;
276
+ pub fn atomic_xadd_acqrel < T > ( dst : & T , src : T ) -> T ;
277
+ pub fn atomic_xadd_relaxed < T > ( dst : & T , src : T ) -> T ;
278
+
279
+ pub fn atomic_xsub < T > ( dst : & T , src : T ) -> T ;
280
+ pub fn atomic_xsub_acq < T > ( dst : & T , src : T ) -> T ;
281
+ pub fn atomic_xsub_rel < T > ( dst : & T , src : T ) -> T ;
282
+ pub fn atomic_xsub_acqrel < T > ( dst : & T , src : T ) -> T ;
283
+ pub fn atomic_xsub_relaxed < T > ( dst : & T , src : T ) -> T ;
284
+
285
+ pub fn atomic_and < T > ( dst : & T , src : T ) -> T ;
286
+ pub fn atomic_and_acq < T > ( dst : & T , src : T ) -> T ;
287
+ pub fn atomic_and_rel < T > ( dst : & T , src : T ) -> T ;
288
+ pub fn atomic_and_acqrel < T > ( dst : & T , src : T ) -> T ;
289
+ pub fn atomic_and_relaxed < T > ( dst : & T , src : T ) -> T ;
290
+
291
+ pub fn atomic_nand < T > ( dst : & T , src : T ) -> T ;
292
+ pub fn atomic_nand_acq < T > ( dst : & T , src : T ) -> T ;
293
+ pub fn atomic_nand_rel < T > ( dst : & T , src : T ) -> T ;
294
+ pub fn atomic_nand_acqrel < T > ( dst : & T , src : T ) -> T ;
295
+ pub fn atomic_nand_relaxed < T > ( dst : & T , src : T ) -> T ;
296
+
297
+ pub fn atomic_or < T > ( dst : & T , src : T ) -> T ;
298
+ pub fn atomic_or_acq < T > ( dst : & T , src : T ) -> T ;
299
+ pub fn atomic_or_rel < T > ( dst : & T , src : T ) -> T ;
300
+ pub fn atomic_or_acqrel < T > ( dst : & T , src : T ) -> T ;
301
+ pub fn atomic_or_relaxed < T > ( dst : & T , src : T ) -> T ;
302
+
303
+ pub fn atomic_xor < T > ( dst : & T , src : T ) -> T ;
304
+ pub fn atomic_xor_acq < T > ( dst : & T , src : T ) -> T ;
305
+ pub fn atomic_xor_rel < T > ( dst : & T , src : T ) -> T ;
306
+ pub fn atomic_xor_acqrel < T > ( dst : & T , src : T ) -> T ;
307
+ pub fn atomic_xor_relaxed < T > ( dst : & T , src : T ) -> T ;
308
+
309
+ pub fn atomic_max < T > ( dst : & T , src : T ) -> T ;
310
+ pub fn atomic_max_acq < T > ( dst : & T , src : T ) -> T ;
311
+ pub fn atomic_max_rel < T > ( dst : & T , src : T ) -> T ;
312
+ pub fn atomic_max_acqrel < T > ( dst : & T , src : T ) -> T ;
313
+ pub fn atomic_max_relaxed < T > ( dst : & T , src : T ) -> T ;
314
+
315
+ pub fn atomic_min < T > ( dst : & T , src : T ) -> T ;
316
+ pub fn atomic_min_acq < T > ( dst : & T , src : T ) -> T ;
317
+ pub fn atomic_min_rel < T > ( dst : & T , src : T ) -> T ;
318
+ pub fn atomic_min_acqrel < T > ( dst : & T , src : T ) -> T ;
319
+ pub fn atomic_min_relaxed < T > ( dst : & T , src : T ) -> T ;
320
+
321
+ pub fn atomic_umin < T > ( dst : & T , src : T ) -> T ;
322
+ pub fn atomic_umin_acq < T > ( dst : & T , src : T ) -> T ;
323
+ pub fn atomic_umin_rel < T > ( dst : & T , src : T ) -> T ;
324
+ pub fn atomic_umin_acqrel < T > ( dst : & T , src : T ) -> T ;
325
+ pub fn atomic_umin_relaxed < T > ( dst : & T , src : T ) -> T ;
326
+
327
+ pub fn atomic_umax < T > ( dst : & T , src : T ) -> T ;
328
+ pub fn atomic_umax_acq < T > ( dst : & T , src : T ) -> T ;
329
+ pub fn atomic_umax_rel < T > ( dst : & T , src : T ) -> T ;
330
+ pub fn atomic_umax_acqrel < T > ( dst : & T , src : T ) -> T ;
331
+ pub fn atomic_umax_relaxed < T > ( dst : & T , src : T ) -> T ;
332
+ }
333
+
334
+ extern "rust-intrinsic" {
247
335
248
336
pub fn atomic_fence ( ) ;
249
337
pub fn atomic_fence_acq ( ) ;
0 commit comments