mirror of https://github.com/microsoft/clang.git
[PowerPC] Pass CPU to assembler with -no-integrated-as
This just adds the CPU to a list of commands passed to GAS when not using the integrated assembler. Differential Revision: https://reviews.llvm.org/D33820 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309256 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5022d62c16
commit
9a2eb2f258
|
@ -86,6 +86,18 @@ std::string ppc::getPPCTargetCPU(const ArgList &Args) {
|
|||
return "";
|
||||
}
|
||||
|
||||
const char *ppc::getPPCAsmModeForCPU(StringRef Name) {
|
||||
return llvm::StringSwitch<const char *>(Name)
|
||||
.Case("pwr7", "-mpower7")
|
||||
.Case("power7", "-mpower7")
|
||||
.Case("pwr8", "-mpower8")
|
||||
.Case("power8", "-mpower8")
|
||||
.Case("ppc64le", "-mpower8")
|
||||
.Case("pwr9", "-mpower9")
|
||||
.Case("power9", "-mpower9")
|
||||
.Default("-many");
|
||||
}
|
||||
|
||||
void ppc::getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,
|
||||
const ArgList &Args,
|
||||
std::vector<StringRef> &Features) {
|
||||
|
|
|
@ -32,6 +32,7 @@ enum class FloatABI {
|
|||
FloatABI getPPCFloatABI(const Driver &D, const llvm::opt::ArgList &Args);
|
||||
|
||||
std::string getPPCTargetCPU(const llvm::opt::ArgList &Args);
|
||||
const char *getPPCAsmModeForCPU(StringRef Name);
|
||||
|
||||
void getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,
|
||||
const llvm::opt::ArgList &Args,
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "Linux.h"
|
||||
#include "Arch/ARM.h"
|
||||
#include "Arch/Mips.h"
|
||||
#include "Arch/PPC.h"
|
||||
#include "Arch/Sparc.h"
|
||||
#include "Arch/SystemZ.h"
|
||||
#include "CommonArgs.h"
|
||||
|
@ -695,22 +696,28 @@ void tools::gnutools::Assembler::ConstructJob(Compilation &C,
|
|||
else
|
||||
CmdArgs.push_back("--64");
|
||||
break;
|
||||
case llvm::Triple::ppc:
|
||||
case llvm::Triple::ppc: {
|
||||
CmdArgs.push_back("-a32");
|
||||
CmdArgs.push_back("-mppc");
|
||||
CmdArgs.push_back("-many");
|
||||
CmdArgs.push_back(
|
||||
ppc::getPPCAsmModeForCPU(getCPUName(Args, getToolChain().getTriple())));
|
||||
break;
|
||||
case llvm::Triple::ppc64:
|
||||
}
|
||||
case llvm::Triple::ppc64: {
|
||||
CmdArgs.push_back("-a64");
|
||||
CmdArgs.push_back("-mppc64");
|
||||
CmdArgs.push_back("-many");
|
||||
CmdArgs.push_back(
|
||||
ppc::getPPCAsmModeForCPU(getCPUName(Args, getToolChain().getTriple())));
|
||||
break;
|
||||
case llvm::Triple::ppc64le:
|
||||
}
|
||||
case llvm::Triple::ppc64le: {
|
||||
CmdArgs.push_back("-a64");
|
||||
CmdArgs.push_back("-mppc64");
|
||||
CmdArgs.push_back("-many");
|
||||
CmdArgs.push_back("-mlittle-endian");
|
||||
CmdArgs.push_back(
|
||||
ppc::getPPCAsmModeForCPU(getCPUName(Args, getToolChain().getTriple())));
|
||||
break;
|
||||
}
|
||||
case llvm::Triple::sparc:
|
||||
case llvm::Triple::sparcel: {
|
||||
CmdArgs.push_back("-32");
|
||||
|
|
|
@ -174,3 +174,18 @@
|
|||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-Z-ARCH-Z196 %s
|
||||
// CHECK-Z-ARCH-Z196: as{{.*}} "-march=z196"
|
||||
//
|
||||
// RUN: %clang -target powerpc64le-linux -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-PPC64LE %s
|
||||
// CHECK-PPC64LE: as{{.*}} "-mpower8"
|
||||
//
|
||||
// RUN: %clang -target powerpc64-linux -mcpu=pwr7 -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-PPC64 %s
|
||||
// CHECK-PPC64: as{{.*}} "-mpower7"
|
||||
//
|
||||
// RUN: %clang -target powerpc-linux -mcpu=pwr9 -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-PPC32 %s
|
||||
// CHECK-PPC32: as{{.*}} "-mpower9"
|
||||
|
|
|
@ -171,8 +171,8 @@
|
|||
|
||||
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o -no-integrated-as 2>&1 | FileCheck -check-prefix=CHECK_LE_AS_ARGS %s
|
||||
// CHECK_LE_AS_ARGS: "-mppc64"
|
||||
// CHECK_LE_AS_ARGS: "-many"
|
||||
// CHECK_LE_AS_ARGS: "-mlittle-endian"
|
||||
// CHECK_LE_AS_ARGS: "-mpower8"
|
||||
|
||||
// linker features
|
||||
// RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_BE_LD_ARGS %s
|
||||
|
|
Loading…
Reference in New Issue