From 28712da449910bb7e79d2c43b66d5b025f9665bd Mon Sep 17 00:00:00 2001 From: Zijiao Ma Date: Mon, 13 Jun 2016 05:27:58 +0000 Subject: [PATCH] [AArch64] Add RAS extensions support in AArch64TargetParser. 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 | 4 +++- include/llvm/Support/TargetParser.h | 3 ++- lib/Support/TargetParser.cpp | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/llvm/Support/AArch64TargetParser.def b/include/llvm/Support/AArch64TargetParser.def index 3653a33a53e..dadaca2c08a 100644 --- a/include/llvm/Support/AArch64TargetParser.def +++ b/include/llvm/Support/AArch64TargetParser.def @@ -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 diff --git a/include/llvm/Support/TargetParser.h b/include/llvm/Support/TargetParser.h index 3cd2b2cb94c..0e2141f6d46 100644 --- a/include/llvm/Support/TargetParser.h +++ b/include/llvm/Support/TargetParser.h @@ -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); diff --git a/lib/Support/TargetParser.cpp b/lib/Support/TargetParser.cpp index 9e6b9221f76..c3f86130b68 100644 --- a/lib/Support/TargetParser.cpp +++ b/lib/Support/TargetParser.cpp @@ -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; } -- 2.50.1