diff options
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 37 |
1 files changed, 5 insertions, 32 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index beb6a34c904..261af720d36 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -617,42 +617,15 @@ static void getARMFPUFeatures(const Driver &D, const Arg *A, } } -// FIXME: Move to ARMTargetParser. static int getARMSubArchVersionNumber(const llvm::Triple &Triple) { - switch (Triple.getSubArch()) { - case llvm::Triple::ARMSubArch_v8_1a: - case llvm::Triple::ARMSubArch_v8: - return 8; - case llvm::Triple::ARMSubArch_v7: - case llvm::Triple::ARMSubArch_v7em: - case llvm::Triple::ARMSubArch_v7m: - case llvm::Triple::ARMSubArch_v7s: - return 7; - case llvm::Triple::ARMSubArch_v6: - case llvm::Triple::ARMSubArch_v6m: - case llvm::Triple::ARMSubArch_v6k: - case llvm::Triple::ARMSubArch_v6t2: - return 6; - case llvm::Triple::ARMSubArch_v5: - case llvm::Triple::ARMSubArch_v5te: - return 5; - case llvm::Triple::ARMSubArch_v4t: - return 4; - default: - return 0; - } + llvm::StringRef Arch = Triple.getArchName(); + return llvm::ARMTargetParser::parseArchVersion(Arch); } -// FIXME: Move to ARMTargetParser. static bool isARMMProfile(const llvm::Triple &Triple) { - switch (Triple.getSubArch()) { - case llvm::Triple::ARMSubArch_v7em: - case llvm::Triple::ARMSubArch_v7m: - case llvm::Triple::ARMSubArch_v6m: - return true; - default: - return false; - } + llvm::StringRef Arch = Triple.getArchName(); + unsigned Profile = llvm::ARMTargetParser::parseArchProfile(Arch); + return Profile == llvm::ARM::PK_M; } // Select the float ABI as determined by -msoft-float, -mhard-float, and |

