summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2015-05-11 15:21:44 +0000
committerDouglas Katzman <dougk@google.com>2015-05-11 15:21:44 +0000
commitf36dddf4266ce863da9a6853523ef9b85fb01662 (patch)
tree7c128fdd4e1e39bb8a9e0f9fbaad207ae95efb52 /clang/lib/Driver/Tools.cpp
parent015c7a91f12fba37d0ae656931857a1f00cb6b48 (diff)
downloadbcm5719-llvm-f36dddf4266ce863da9a6853523ef9b85fb01662.tar.gz
bcm5719-llvm-f36dddf4266ce863da9a6853523ef9b85fb01662.zip
[Sparc] Add support for 'sparcel' to clang.
Differential Revision: http://reviews.llvm.org/D8784 llvm-svn: 237001
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 0be1fa1e173..e215b6eed5c 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -1568,6 +1568,7 @@ static std::string getCPUName(const ArgList &Args, const llvm::Triple &T) {
}
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
case llvm::Triple::sparcv9:
if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
return A->getValue();
@@ -1946,6 +1947,7 @@ static void getTargetFeatures(const Driver &D, const llvm::Triple &Triple,
getPPCTargetFeatures(Args, Features);
break;
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
case llvm::Triple::sparcv9:
getSparcTargetFeatures(Args, Features);
break;
@@ -2833,6 +2835,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
case llvm::Triple::mips64:
case llvm::Triple::mips64el:
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
case llvm::Triple::x86:
case llvm::Triple::x86_64:
IsPICLevelTwo = false; // "-fpie"
@@ -3269,6 +3272,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
break;
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
case llvm::Triple::sparcv9:
AddSparcTargetArgs(Args, CmdArgs);
break;
@@ -6580,6 +6584,7 @@ void openbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
break;
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
CmdArgs.push_back("-32");
NeedsKPIC = true;
break;
@@ -6958,6 +6963,7 @@ void freebsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-matpcs");
}
} else if (getToolChain().getArch() == llvm::Triple::sparc ||
+ getToolChain().getArch() == llvm::Triple::sparcel ||
getToolChain().getArch() == llvm::Triple::sparcv9) {
if (getToolChain().getArch() == llvm::Triple::sparc)
CmdArgs.push_back("-Av8plusa");
@@ -7212,6 +7218,7 @@ void netbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
}
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
CmdArgs.push_back("-32");
addAssemblerKPIC(Args, CmdArgs);
break;
@@ -7489,6 +7496,7 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-mlittle-endian");
break;
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
CmdArgs.push_back("-32");
CmdArgs.push_back("-Av8plusa");
NeedsKPIC = true;
@@ -7696,7 +7704,8 @@ static std::string getLinuxDynamicLinker(const ArgList &Args,
else
return "/system/bin/linker";
} else if (ToolChain.getArch() == llvm::Triple::x86 ||
- ToolChain.getArch() == llvm::Triple::sparc)
+ ToolChain.getArch() == llvm::Triple::sparc ||
+ ToolChain.getArch() == llvm::Triple::sparcel)
return "/lib/ld-linux.so.2";
else if (ToolChain.getArch() == llvm::Triple::aarch64)
return "/lib/ld-linux-aarch64.so.1";
@@ -7798,6 +7807,7 @@ static const char *getLDMOption(const llvm::Triple &T, const ArgList &Args) {
case llvm::Triple::ppc64le:
return "elf64lppc";
case llvm::Triple::sparc:
+ case llvm::Triple::sparcel:
return "elf32_sparc";
case llvm::Triple::sparcv9:
return "elf64_sparc";
OpenPOWER on IntegriCloud