]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/patches/patch-r262262-clang-r198911-sparc.diff
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / patches / patch-r262262-clang-r198911-sparc.diff
1 Pull in r198911 from upstream clang trunk (by Jakob Stoklund Olesen):
2
3   Pass -32/-64 to the assembler when building for sparc/sparc64.
4
5 Introduced here: http://svnweb.freebsd.org/changeset/base/262262
6
7 Index: tools/clang/test/Driver/linux-as.c
8 ===================================================================
9 --- tools/clang/test/Driver/linux-as.c
10 +++ tools/clang/test/Driver/linux-as.c
11 @@ -60,6 +60,20 @@
12  // RUN:   | FileCheck -check-prefix=CHECK-PPC-NO-MCPU %s
13  // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu"
14  //
15 +// RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
16 +// RUN:   -no-integrated-as -c %s 2>&1 \
17 +// RUN:   | FileCheck -check-prefix=CHECK-SPARCV9 %s
18 +// CHECK-SPARCV9: as
19 +// CHECK-SPARCV9: -64
20 +// CHECK-SPARCV9: -o
21 +//
22 +// RUN: %clang -target sparc-linux -mcpu=invalid-cpu -### \
23 +// RUN:   -no-integrated-as -c %s 2>&1 \
24 +// RUN:   | FileCheck -check-prefix=CHECK-SPARCV8 %s
25 +// CHECK-SPARCV8: as
26 +// CHECK-SPARCV8: -32
27 +// CHECK-SPARCV8: -o
28 +//
29  // RUN: %clang -target s390x-linux -### -no-integrated-as -c %s 2>&1 \
30  // RUN:   | FileCheck -check-prefix=CHECK-Z-DEFAULT-ARCH %s
31  // CHECK-Z-DEFAULT-ARCH: as{{.*}} "-march=z10"
32 Index: tools/clang/lib/Driver/Tools.cpp
33 ===================================================================
34 --- tools/clang/lib/Driver/Tools.cpp
35 +++ tools/clang/lib/Driver/Tools.cpp
36 @@ -6226,6 +6226,10 @@ void gnutools::Assemble::ConstructJob(Compilation
37      CmdArgs.push_back("-a64");
38      CmdArgs.push_back("-mppc64le");
39      CmdArgs.push_back("-many");
40 +  } else if (getToolChain().getArch() == llvm::Triple::sparc) {
41 +    CmdArgs.push_back("-32");
42 +  } else if (getToolChain().getArch() == llvm::Triple::sparcv9) {
43 +    CmdArgs.push_back("-64");
44    } else if (getToolChain().getArch() == llvm::Triple::arm) {
45      StringRef MArch = getToolChain().getArchName();
46      if (MArch == "armv7" || MArch == "armv7a" || MArch == "armv7-a")