From 517048062fb1105e9dcb43799fbe47553b32d35b Mon Sep 17 00:00:00 2001 From: Jacob Baungard Hansen Date: Mon, 4 Jul 2016 08:56:08 +0000 Subject: [PATCH] [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274487 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Targets.cpp | 26 +++++++++++++++++++++++++- lib/Driver/Tools.cpp | 8 ++++++++ test/Driver/sparc-as.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 80802fdf97..5e9ea6819e 100644 --- a/lib/Basic/Targets.cpp +++ b/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/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 6d3aaf1d58..2425619d4c 100644 --- a/lib/Driver/Tools.cpp +++ b/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/test/Driver/sparc-as.c b/test/Driver/sparc-as.c index 5b939956cb..80122cf6dc 100644 --- a/test/Driver/sparc-as.c +++ b/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" -- 2.40.0