diff options
Diffstat (limited to 'llvm/lib/Support/ARMTargetParser.cpp')
| -rw-r--r-- | llvm/lib/Support/ARMTargetParser.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/llvm/lib/Support/ARMTargetParser.cpp b/llvm/lib/Support/ARMTargetParser.cpp index 94b48df27993..4405ed176fe2 100644 --- a/llvm/lib/Support/ARMTargetParser.cpp +++ b/llvm/lib/Support/ARMTargetParser.cpp @@ -82,6 +82,10 @@ unsigned ARM::parseArchVersion(StringRef Arch) { case ArchKind::ARMV8MMainline: case ArchKind::ARMV8_1MMainline: return 8; + case ArchKind::ARMV9A: + case ArchKind::ARMV9_1A: + case ArchKind::ARMV9_2A: + return 9; case ArchKind::INVALID: return 0; } @@ -113,6 +117,9 @@ ARM::ProfileKind ARM::parseArchProfile(StringRef Arch) { case ArchKind::ARMV8_5A: case ArchKind::ARMV8_6A: case ArchKind::ARMV8_7A: + case ArchKind::ARMV9A: + case ArchKind::ARMV9_1A: + case ArchKind::ARMV9_2A: return ProfileKind::A; case ArchKind::ARMV2: case ArchKind::ARMV2A: @@ -158,6 +165,9 @@ StringRef ARM::getArchSynonym(StringRef Arch) { .Case("v8.6a", "v8.6-a") .Case("v8.7a", "v8.7-a") .Case("v8r", "v8-r") + .Cases("v9", "v9a", "v9-a") + .Case("v9.1a", "v9.1-a") + .Case("v9.2a", "v9.2-a") .Case("v8m.base", "v8-m.base") .Case("v8m.main", "v8-m.main") .Case("v8.1m.main", "v8.1-m.main") @@ -297,7 +307,7 @@ StringRef ARM::getCanonicalArchName(StringRef Arch) { else if (A.startswith("aarch64")) { offset = 7; // AArch64 uses "_be", not "eb" suffix. - if (A.find("eb") != StringRef::npos) + if (A.contains("eb")) return Error; if (A.substr(offset, 3) == "_be") offset += 3; @@ -323,7 +333,7 @@ StringRef ARM::getCanonicalArchName(StringRef Arch) { if (A.size() >= 2 && (A[0] != 'v' || !std::isdigit(A[1]))) return Error; // Can't have an extra 'eb'. - if (A.find("eb") != StringRef::npos) + if (A.contains("eb")) return Error; } |
