diff options
| author | bors <bors@rust-lang.org> | 2016-12-28 04:12:11 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-12-28 04:12:11 +0000 |
| commit | 0807104c8fa90b084748940f7a7980b5a765264e (patch) | |
| tree | 9c52c367fbe10fb11264fc1bf7b1a96b1551ef1a /src/librustc | |
| parent | a9ab7788150d19e44419c3b153336aa24ad830b9 (diff) | |
| parent | 5b0700ef314c428b2533a02171e0566f70599222 (diff) | |
| download | rust-0807104c8fa90b084748940f7a7980b5a765264e.tar.gz rust-0807104c8fa90b084748940f7a7980b5a765264e.zip | |
Auto merge of #38579 - whitequark:min_atomic_width, r=alexcrichton
Add a min_atomic_width target option, like max_atomic_width Rationale: some ISAs, e.g. OR1K, do not have atomic instructions for byte and halfword access, and at the same time do not have a fixed endianness, which makes it unreasonable to implement these through word-sized atomic accesses.
Diffstat (limited to 'src/librustc')
| -rw-r--r-- | src/librustc/session/config.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs index ecc8042e940..a78482171a0 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs @@ -943,6 +943,7 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig { let os = &sess.target.target.target_os; let env = &sess.target.target.target_env; let vendor = &sess.target.target.target_vendor; + let min_atomic_width = sess.target.target.min_atomic_width(); let max_atomic_width = sess.target.target.max_atomic_width(); let mut ret = HashSet::new(); @@ -963,7 +964,7 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig { ret.insert((Symbol::intern("target_thread_local"), None)); } for &i in &[8, 16, 32, 64, 128] { - if i <= max_atomic_width { + if i >= min_atomic_width && i <= max_atomic_width { let s = i.to_string(); ret.insert((Symbol::intern("target_has_atomic"), Some(Symbol::intern(&s)))); if &s == wordsz { |
