Split non-CAS atomic support off into target_has_atomic_load_store
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index b48353e..e1b8e5f 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1514,22 +1514,25 @@
}
for &i in &[8, 16, 32, 64, 128] {
if i >= min_atomic_width && i <= max_atomic_width {
- let s = i.to_string();
- ret.insert((
- sym::target_has_atomic,
- Some(Symbol::intern(&s)),
- ));
- if &s == wordsz {
+ let mut insert_atomic = |s| {
ret.insert((
- sym::target_has_atomic,
- Some(Symbol::intern("ptr")),
+ sym::target_has_atomic_load_store,
+ Some(Symbol::intern(s)),
));
+ if atomic_cas {
+ ret.insert((
+ sym::target_has_atomic,
+ Some(Symbol::intern(s))
+ ));
+ }
+ };
+ let s = i.to_string();
+ insert_atomic(&s);
+ if &s == wordsz {
+ insert_atomic("ptr");
}
}
}
- if atomic_cas {
- ret.insert((sym::target_has_atomic, Some(Symbol::intern("cas"))));
- }
if sess.opts.debug_assertions {
ret.insert((Symbol::intern("debug_assertions"), None));
}