]> granicus.if.org Git - llvm/commitdiff
[AArch64] Add RAS extensions support in AArch64TargetParser.
authorZijiao Ma <jojo.ma@linaro.org>
Mon, 13 Jun 2016 05:27:58 +0000 (05:27 +0000)
committerZijiao Ma <jojo.ma@linaro.org>
Mon, 13 Jun 2016 05:27:58 +0000 (05:27 +0000)
RAS extensions are part of ARMv8.2,now supported in Clang.
Add RAS extensions support in AArch64TargetParser.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272533 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/AArch64TargetParser.def
include/llvm/Support/TargetParser.h
lib/Support/TargetParser.cpp

index 3653a33a53e2c9bfbe9ae4a3f3cec5a2c90c615f..dadaca2c08af2c5c256c7ed3e8d90ae7cca02650 100644 (file)
@@ -27,7 +27,8 @@ AARCH64_ARCH("armv8.1-a", AK_ARMV8_1A, "8.1-A", "v8.1a",
 AARCH64_ARCH("armv8.2-a", AK_ARMV8_2A, "8.2-A", "v8.2a",
              ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8,
              (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
-              AArch64::AEK_SIMD | AArch64::AEK_FP16 | AArch64::AEK_PROFILE))
+              AArch64::AEK_SIMD | AArch64::AEK_FP16 | AArch64::AEK_PROFILE |
+              AArch64::AEK_RAS))
 #undef AARCH64_ARCH
 
 #ifndef AARCH64_ARCH_EXT_NAME
@@ -42,6 +43,7 @@ AARCH64_ARCH_EXT_NAME("fp",       AArch64::AEK_FP,       "+fp-armv8",  "-fp-armv
 AARCH64_ARCH_EXT_NAME("simd",     AArch64::AEK_SIMD,     "+neon",  "-neon")
 AARCH64_ARCH_EXT_NAME("fp16",     AArch64::AEK_FP16,     "+fullfp16",  "-fullfp16")
 AARCH64_ARCH_EXT_NAME("profile",     AArch64::AEK_PROFILE,     "+spe",  "-spe")
+AARCH64_ARCH_EXT_NAME("ras",     AArch64::AEK_RAS,     "+ras",  "-ras")
 #undef AARCH64_ARCH_EXT_NAME
 
 #ifndef AARCH64_CPU_NAME
index 3cd2b2cb94c80fc120a44c2fde3d0e08bdb6fe3c..0e2141f6d46fd283b79662597f61f99bd99494a5 100644 (file)
@@ -154,7 +154,8 @@ enum ArchExtKind : unsigned {
   AEK_FP = 0x8,
   AEK_SIMD = 0x10,
   AEK_FP16 = 0x20,
-  AEK_PROFILE = 0x40
+  AEK_PROFILE = 0x40,
+  AEK_RAS = 0x80
 };
 
 StringRef getCanonicalArchName(StringRef Arch);
index 9e6b9221f764937b56e140830f9f2c682ac9130b..c3f86130b68c8ddbdf339be3d203e55561cbabaa 100644 (file)
@@ -439,6 +439,8 @@ bool llvm::AArch64::getExtensionFeatures(unsigned Extensions,
     Features.push_back("+fullfp16");
   if (Extensions & AArch64::AEK_PROFILE)
     Features.push_back("+spe");
+  if (Extensions & AArch64::AEK_RAS)
+    Features.push_back("+ras");
 
   return true;
 }