diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h index 0eb49c5e0942..f69ed74ad296 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -90,7 +90,11 @@ public: ARMSubArch_v6t2, ARMSubArch_v5, ARMSubArch_v5te, - ARMSubArch_v4t + ARMSubArch_v4t, + + KalimbaSubArch_v3, + KalimbaSubArch_v4, + KalimbaSubArch_v5 }; enum VendorType { UnknownVendor, diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp index 8477d4690d62..2fff70c05edc 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -247,7 +247,7 @@ static Triple::ArchType parseArch(StringRef ArchName) { .Case("amdil", Triple::amdil) .Case("spir", Triple::spir) .Case("spir64", Triple::spir64) - .Case("kalimba", Triple::kalimba) + .StartsWith("kalimba", Triple::kalimba) .Default(Triple::UnknownArch); } @@ -337,6 +337,11 @@ static Triple::SubArchType parseSubArch(StringRef SubArchName) { .EndsWith("v5t", Triple::ARMSubArch_v5) .EndsWith("v5te", Triple::ARMSubArch_v5te) .EndsWith("v4t", Triple::ARMSubArch_v4t) + + .EndsWith("kalimba3", Triple::KalimbaSubArch_v3) + .EndsWith("kalimba4", Triple::KalimbaSubArch_v4) + .EndsWith("kalimba5", Triple::KalimbaSubArch_v5) + .Default(Triple::NoSubArch); }