diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2015-11-10 00:40:29 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2015-11-10 00:40:29 +0000 |
commit | 5c1ac90715e64dbb8339ccbcb2b5723a7332bd05 (patch) | |
tree | 6f4608ba6d2417b0dbf15575c0f262c823310c04 /clang/lib/Driver/Tools.cpp | |
parent | 7efc57bc190d1690988e3ca9884208f72ccd554d (diff) | |
download | llvm-5c1ac90715e64dbb8339ccbcb2b5723a7332bd05.zip llvm-5c1ac90715e64dbb8339ccbcb2b5723a7332bd05.tar.gz llvm-5c1ac90715e64dbb8339ccbcb2b5723a7332bd05.tar.bz2 |
Use the generic Sparc CPU handling for Linux, FreeBSD and OpenBSD, too.
This currently changes the default toward the more historic -Av8/-Av9,
but as discussed with James Y Knight, consistency is for now more
important than figuring out which default CPU each OS should be using.
llvm-svn: 252571
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 55 |
1 files changed, 26 insertions, 29 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index de9e400..033e41e 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -7156,7 +7156,6 @@ void openbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA, const char *LinkingOutput) const { claimNoWarnArgs(Args); ArgStringList CmdArgs; - bool NeedsKPIC = false; switch (getToolChain().getArch()) { case llvm::Triple::x86: @@ -7171,16 +7170,21 @@ void openbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA, break; case llvm::Triple::sparc: - case llvm::Triple::sparcel: + case llvm::Triple::sparcel: { CmdArgs.push_back("-32"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; + } - case llvm::Triple::sparcv9: + case llvm::Triple::sparcv9: { CmdArgs.push_back("-64"); - CmdArgs.push_back("-Av9a"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; + } case llvm::Triple::mips64: case llvm::Triple::mips64el: { @@ -7196,7 +7200,7 @@ void openbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA, else CmdArgs.push_back("-EL"); - NeedsKPIC = true; + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } @@ -7204,9 +7208,6 @@ void openbsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA, break; } - if (NeedsKPIC) - AddAssemblerKPIC(getToolChain(), Args, CmdArgs); - Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); CmdArgs.push_back("-o"); @@ -7545,15 +7546,13 @@ void freebsd::Assembler::ConstructJob(Compilation &C, const JobAction &JA, } case llvm::Triple::sparc: case llvm::Triple::sparcel: - case llvm::Triple::sparcv9: - if (getToolChain().getArch() == llvm::Triple::sparc) - CmdArgs.push_back("-Av8plusa"); - else - CmdArgs.push_back("-Av9a"); - + case llvm::Triple::sparcv9: { + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } + } Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); @@ -8056,7 +8055,6 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA, llvm::Triple Triple = llvm::Triple(TripleStr); ArgStringList CmdArgs; - bool NeedsKPIC = false; llvm::Reloc::Model RelocationModel; unsigned PICLevel; @@ -8095,16 +8093,20 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-mlittle-endian"); break; case llvm::Triple::sparc: - case llvm::Triple::sparcel: + case llvm::Triple::sparcel: { CmdArgs.push_back("-32"); - CmdArgs.push_back("-Av8plusa"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; - case llvm::Triple::sparcv9: + } + case llvm::Triple::sparcv9: { CmdArgs.push_back("-64"); - CmdArgs.push_back("-Av9a"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; + } case llvm::Triple::arm: case llvm::Triple::armeb: case llvm::Triple::thumb: @@ -8227,7 +8229,7 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA, Args.AddLastArg(CmdArgs, options::OPT_modd_spreg, options::OPT_mno_odd_spreg); - NeedsKPIC = true; + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } case llvm::Triple::systemz: { @@ -8239,11 +8241,6 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA, } } - if (NeedsKPIC) { - if (RelocationModel != llvm::Reloc::Static) - CmdArgs.push_back("-KPIC"); - } - Args.AddAllArgs(CmdArgs, options::OPT_I); Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); |