about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2017-10-17 22:21:00 +0800
committerGitHub <noreply@github.com>2017-10-17 22:21:00 +0800
commit16167cbf737436c468bd3d9ca05785210214c2d1 (patch)
tree17f1c69da028e8d5578b6c294c9aa0b86876316d
parent2ff1ad08adf40c454f0e3610d46068d4bfdeda43 (diff)
parent6020f3033561076f30062258b92a146b26a0e322 (diff)
downloadrust-16167cbf737436c468bd3d9ca05785210214c2d1.tar.gz
rust-16167cbf737436c468bd3d9ca05785210214c2d1.zip
Rollup merge of #45310 - gnzlbg:fix_aarch64, r=pnkfelix
aarch64 is not whitelisted for ARM features

This prevents the target feature `neon` from being enabled on aarch64.
-rw-r--r--src/librustc_trans/llvm_util.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/librustc_trans/llvm_util.rs b/src/librustc_trans/llvm_util.rs
index 448feb5259d..4fe726364f2 100644
--- a/src/librustc_trans/llvm_util.rs
+++ b/src/librustc_trans/llvm_util.rs
@@ -73,6 +73,8 @@ unsafe fn configure_llvm(sess: &Session) {
 
 const ARM_WHITELIST: &'static [&'static str] = &["neon\0", "vfp2\0", "vfp3\0", "vfp4\0"];
 
+const AARCH64_WHITELIST: &'static [&'static str] = &["neon\0"];
+
 const X86_WHITELIST: &'static [&'static str] = &["avx\0", "avx2\0", "bmi\0", "bmi2\0", "sse\0",
                                                  "sse2\0", "sse3\0", "sse4.1\0", "sse4.2\0",
                                                  "ssse3\0", "tbm\0", "lzcnt\0", "popcnt\0",
@@ -90,6 +92,7 @@ pub fn target_features(sess: &Session) -> Vec<Symbol> {
 
     let whitelist = match &*sess.target.target.arch {
         "arm" => ARM_WHITELIST,
+        "aarch64" => AARCH64_WHITELIST,
         "x86" | "x86_64" => X86_WHITELIST,
         "hexagon" => HEXAGON_WHITELIST,
         "powerpc" | "powerpc64" => POWERPC_WHITELIST,