diff options
author | Jacob Baungard Hansen <jacob.hansen@esa.int> | 2016-07-04 08:56:08 +0000 |
---|---|---|
committer | Jacob Baungard Hansen <jacob.hansen@esa.int> | 2016-07-04 08:56:08 +0000 |
commit | 1bf12828bef1fdb992929978afda257c43fa658e (patch) | |
tree | e64bf7ca60e2e2d58235c74686f9c839c1a4cedd | |
parent | 84c9f9919a1b0e7a80af6854ec3507770ae854f7 (diff) | |
download | bcm5719-llvm-1bf12828bef1fdb992929978afda257c43fa658e.tar.gz bcm5719-llvm-1bf12828bef1fdb992929978afda257c43fa658e.zip |
[Sparc] Allow LEON cpu models to be selected with -mcpu
Summary: This change exposes the recently added LEON CPUs (D19359) in the LLVM Sparc backend to Clang, allowing the cpu's to be selected using the -mcpu flag.
Reviewers: jyknight, lero_chris
Subscribers: jyknight, cfe-commits
Differential Revision: http://reviews.llvm.org/D21683
llvm-svn: 274487
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 26 | ||||
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 8 | ||||
-rw-r--r-- | clang/test/Driver/sparc-as.c | 32 |
3 files changed, 65 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 80802fdf97e..5e9ea6819e8 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -6479,7 +6479,15 @@ public: CK_NIAGARA3, CK_NIAGARA4, CK_MYRIAD2_1, - CK_MYRIAD2_2 + CK_MYRIAD2_2, + CK_LEON2, + CK_LEON2_AT697E, + CK_LEON2_AT697F, + CK_LEON3, + CK_LEON3_UT699, + CK_LEON3_GR712RC, + CK_LEON4, + CK_LEON4_GR740 } CPU = CK_GENERIC; enum CPUGeneration { @@ -6500,6 +6508,14 @@ public: case CK_TSC701: case CK_MYRIAD2_1: case CK_MYRIAD2_2: + case CK_LEON2: + case CK_LEON2_AT697E: + case CK_LEON2_AT697F: + case CK_LEON3: + case CK_LEON3_UT699: + case CK_LEON3_GR712RC: + case CK_LEON4: + case CK_LEON4_GR740: return CG_V8; case CK_V9: case CK_ULTRASPARC: @@ -6533,6 +6549,14 @@ public: .Case("myriad2", CK_MYRIAD2_1) .Case("myriad2.1", CK_MYRIAD2_1) .Case("myriad2.2", CK_MYRIAD2_2) + .Case("leon2", CK_LEON2) + .Case("at697e", CK_LEON2_AT697E) + .Case("at697f", CK_LEON2_AT697F) + .Case("leon3", CK_LEON3) + .Case("ut699", CK_LEON3_UT699) + .Case("gr712rc", CK_LEON3_GR712RC) + .Case("leon4", CK_LEON4) + .Case("gr740", CK_LEON4_GR740) .Default(CK_GENERIC); } diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 6d3aaf1d586..2425619d4c9 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -96,6 +96,14 @@ static const char *getSparcAsmModeForCPU(StringRef Name, .Case("niagara2", "-Av8plusb") .Case("niagara3", "-Av8plusd") .Case("niagara4", "-Av8plusd") + .Case("leon2", "-Av8") + .Case("at697e", "-Av8") + .Case("at697f", "-Av8") + .Case("leon3", "-Av8") + .Case("ut699", "-Av8") + .Case("gr712rc", "-Av8") + .Case("leon4", "-Av8") + .Case("gr740", "-Av8") .Default("-Av8"); } } diff --git a/clang/test/Driver/sparc-as.c b/clang/test/Driver/sparc-as.c index 5b939956cb3..80122cf6dc1 100644 --- a/clang/test/Driver/sparc-as.c +++ b/clang/test/Driver/sparc-as.c @@ -76,6 +76,38 @@ // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=SPARC-V8PLUSD %s +// RUN: %clang -mcpu=leon2 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=at697e -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=at697f -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=leon3 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=ut699 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=gr712rc -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=leon4 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + +// RUN: %clang -mcpu=gr740 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-V8 %s + // SPARC: as{{.*}}" "-32" "-Av8" "-o" // SPARC-V8: as{{.*}}" "-32" "-Av8" "-o" // SPARC-SPARCLITE: as{{.*}}" "-32" "-Asparclite" "-o" |