diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-27 08:45:24 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-27 08:45:24 +0900 |
| commit | 46b8e46fe123537616c09b5f431558f1e1e2c172 (patch) | |
| tree | ca38894d87d8234c05be3632ce9441075eb2ee6e /compiler/rustc_codegen_ssa/src | |
| parent | f6f8764b25186174e812296f8d9cd4cff734e917 (diff) | |
| parent | ad552bc17e9e494e039f3db180d4e63be44fe889 (diff) | |
| download | rust-46b8e46fe123537616c09b5f431558f1e1e2c172.tar.gz rust-46b8e46fe123537616c09b5f431558f1e1e2c172.zip | |
Rollup merge of #78396 - josephlr:ermsb, r=petrochenkov
Add compiler support for LLVM's x86_64 ERMSB feature
This change is needed for compiler-builtins to check for this feature
when implementing memcpy/memset. See:
https://github.com/rust-lang/compiler-builtins/pull/365
Without this change, the following code compiles, but does nothing:
```rust
#[cfg(target_feature = "ermsb")]
pub unsafe fn ermsb_memcpy() { ... }
```
The change just does compile-time detection. I think that runtime
detection will have to come in a follow-up CL to std-detect.
Like all the CPU feature flags, this just references #44839
Signed-off-by: Joe Richey <joerichey@google.com>
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/target_features.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/target_features.rs b/compiler/rustc_codegen_ssa/src/target_features.rs index a8d88a95f7a..000ddf42604 100644 --- a/compiler/rustc_codegen_ssa/src/target_features.rs +++ b/compiler/rustc_codegen_ssa/src/target_features.rs @@ -63,6 +63,7 @@ const X86_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[ ("bmi1", None), ("bmi2", None), ("cmpxchg16b", Some(sym::cmpxchg16b_target_feature)), + ("ermsb", Some(sym::ermsb_target_feature)), ("f16c", Some(sym::f16c_target_feature)), ("fma", None), ("fxsr", None), |
