]> granicus.if.org Git - clang/commitdiff
Pass -32/-64 to the assembler when building for sparc/sparc64.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 10 Jan 2014 03:51:29 +0000 (03:51 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 10 Jan 2014 03:51:29 +0000 (03:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198911 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/Driver/linux-as.c

index 6ecc01361f80d49d82c00c6fa5614259f9686e35..ea5adf4ef919b0f619908e17492edead4f854796 100644 (file)
@@ -6289,6 +6289,10 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back("-a64");
     CmdArgs.push_back("-mppc64le");
     CmdArgs.push_back("-many");
+  } else if (getToolChain().getArch() == llvm::Triple::sparc) {
+    CmdArgs.push_back("-32");
+  } else if (getToolChain().getArch() == llvm::Triple::sparcv9) {
+    CmdArgs.push_back("-64");
   } else if (getToolChain().getArch() == llvm::Triple::arm) {
     StringRef MArch = getToolChain().getArchName();
     if (MArch == "armv7" || MArch == "armv7a" || MArch == "armv7-a")
index a449b7b6538058fa11050925dbcb3c24c86b2206..5d852219d8a14128e5e507d704a13c165d0f28be 100644 (file)
 // RUN:   | FileCheck -check-prefix=CHECK-PPC-NO-MCPU %s
 // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu"
 //
+// RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
+// RUN:   -no-integrated-as -c %s 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-SPARCV9 %s
+// CHECK-SPARCV9: as
+// CHECK-SPARCV9: -64
+// CHECK-SPARCV9: -o
+//
+// RUN: %clang -target sparc-linux -mcpu=invalid-cpu -### \
+// RUN:   -no-integrated-as -c %s 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-SPARCV8 %s
+// CHECK-SPARCV8: as
+// CHECK-SPARCV8: -32
+// CHECK-SPARCV8: -o
+//
 // RUN: %clang -target s390x-linux -### -no-integrated-as -c %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-Z-DEFAULT-ARCH %s
 // CHECK-Z-DEFAULT-ARCH: as{{.*}} "-march=z10"