diff options
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/Triple.cpp | 26 | ||||
-rw-r--r-- | lib/Support/Unix/Host.inc | 40 | ||||
-rw-r--r-- | lib/Support/Windows/Host.inc | 40 |
3 files changed, 101 insertions, 5 deletions
diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp index 7c02ffb4ac..9e497a0f63 100644 --- a/lib/Support/Triple.cpp +++ b/lib/Support/Triple.cpp @@ -160,10 +160,22 @@ Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) { return StringSwitch<Triple::ArchType>(Name) .Case("aarch64", aarch64) .Case("arm", arm) + .Case("armeb", arm) + .Case("armel", arm) .Case("mips", mips) .Case("mipsel", mipsel) + .Case("mipsisa32", mips) + .Case("mipsisa32el", mipsel) + .Case("mipsisa32r2", mips) + .Case("mipsisa32r2el", mipsel) .Case("mips64", mips64) .Case("mips64el", mips64el) + .Case("mipsisa64", mips64) + .Case("mipsisa64el", mips64el) + .Case("mipsisa64r2", mips64) + .Case("mipsisa64r2el", mips64el) + .Case("mips64octeon", mips64) + .Case("mips64octeonel", mips64el) .Case("msp430", msp430) .Case("ppc64", ppc64) .Case("ppc32", ppc) @@ -224,17 +236,17 @@ static Triple::ArchType parseArch(StringRef ArchName) { .Cases("powerpc64", "ppu", Triple::ppc64) .Case("mblaze", Triple::mblaze) .Case("aarch64", Triple::aarch64) - .Cases("arm", "xscale", Triple::arm) + .Cases("arm", "armeb", "armel", "xscale", Triple::arm) // FIXME: It would be good to replace these with explicit names for all the // various suffixes supported. .StartsWith("armv", Triple::arm) .Case("thumb", Triple::thumb) .StartsWith("thumbv", Triple::thumb) .Case("msp430", Triple::msp430) - .Cases("mips", "mipseb", "mipsallegrex", Triple::mips) - .Cases("mipsel", "mipsallegrexel", Triple::mipsel) - .Cases("mips64", "mips64eb", Triple::mips64) - .Case("mips64el", Triple::mips64el) + .Cases("mips", "mipseb", "mipsisa32", "mipsisa32r2", "mipsallegrex", Triple::mips) + .Cases("mipsel", "mipsisa32el", "mipsisa32r2el", "mipsallegrexel", Triple::mipsel) + .Cases("mips64", "mips64eb", "mipsisa64", "mipsisa64r2", "mips64octeon", Triple::mips64) + .Cases("mips64el", "mipsisa64el", "mipsisa64r2el", "mips64octeonel", Triple::mips64el) .Case("r600", Triple::r600) .Case("hexagon", Triple::hexagon) .Case("s390x", Triple::systemz) @@ -295,8 +307,12 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) { .StartsWith("eabi", Triple::EABI) .StartsWith("gnueabihf", Triple::GNUEABIHF) .StartsWith("gnueabi", Triple::GNUEABI) + .StartsWith("uclibceabi", Triple::GNUEABI) + .StartsWith("musleabi", Triple::GNUEABI) .StartsWith("gnux32", Triple::GNUX32) .StartsWith("gnu", Triple::GNU) + .StartsWith("uclibc", Triple::GNU) + .StartsWith("musl", Triple::GNU) .StartsWith("macho", Triple::MachO) .StartsWith("android", Triple::Android) .StartsWith("elf", Triple::ELF) diff --git a/lib/Support/Unix/Host.inc b/lib/Support/Unix/Host.inc index 726e2fbcf0..28828eb83c 100644 --- a/lib/Support/Unix/Host.inc +++ b/lib/Support/Unix/Host.inc @@ -61,3 +61,43 @@ std::string sys::getDefaultTargetTriple() { return Triple; } + +std::string sys::getDefaultTargetCpu() { + return LLVM_DEFAULT_TARGET_MCPU; +} + +bool sys::hasDefaultTargetCpu() { + return getDefaultTargetCpu() != ""; +} + +std::string sys::getDefaultTargetFloat() { + return LLVM_DEFAULT_TARGET_FLOAT; +} + +bool sys::hasDefaultTargetFloat() { + return getDefaultTargetFloat() != ""; +} + +std::string sys::getDefaultTargetFpu() { + return LLVM_DEFAULT_TARGET_FPU; +} + +bool sys::hasDefaultTargetFpu() { + return getDefaultTargetFpu() != ""; +} + +std::string sys::getDefaultTargetHashStyle() { + return LLVM_DEFAULT_TARGET_HASHSTYLE; +} + +bool sys::hasDefaultTargetHashStyle() { + return getDefaultTargetHashStyle() != ""; +} + +std::string sys::getDefaultTargetAbi() { + return LLVM_DEFAULT_TARGET_ABI; +} + +bool sys::hasDefaultTargetAbi() { + return getDefaultTargetAbi() != ""; +} diff --git a/lib/Support/Windows/Host.inc b/lib/Support/Windows/Host.inc index 2e6d6f1903..1933bf7e87 100644 --- a/lib/Support/Windows/Host.inc +++ b/lib/Support/Windows/Host.inc @@ -20,3 +20,43 @@ using namespace llvm; std::string sys::getDefaultTargetTriple() { return LLVM_DEFAULT_TARGET_TRIPLE; } + +std::string sys::getDefaultTargetCpu() { + return LLVM_DEFAULT_TARGET_MCPU; +} + +bool sys::hasDefaultTargetCpu() { + return getDefaultTargetCpu() != ""; +} + +std::string sys::getDefaultTargetFloat() { + return LLVM_DEFAULT_TARGET_FLOAT; +} + +bool sys::hasDefaultTargetFloat() { + return getDefaultTargetFloat() != ""; +} + +std::string sys::getDefaultTargetFpu() { + return LLVM_DEFAULT_TARGET_FPU; +} + +bool sys::hasDefaultTargetFpu() { + return getDefaultTargetFpu() != ""; +} + +std::string sys::getDefaultTargetHashStyle() { + return LLVM_DEFAULT_TARGET_HASHSTYLE; +} + +bool sys::hasDefaultTargetHashStyle() { + return getDefaultTargetHashStyle() != ""; +} + +std::string sys::getDefaultTargetAbi() { + return LLVM_DEFAULT_TARGET_ABI; +} + +bool sys::hasDefaultTargetAbi() { + return getDefaultTargetAbi() != ""; +} |