From: Daniel Cederman Date: Thu, 24 May 2018 06:16:02 +0000 (+0000) Subject: [Sparc] Use the leon arch for Leon3's when using an external assembler X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6948c9e09600c501f59fdb0b6ca7fb24160b4333;p=clang [Sparc] Use the leon arch for Leon3's when using an external assembler Summary: This allows the use of the casa instruction available in most Leon3's. Reviewers: jyknight Reviewed By: jyknight Subscribers: joerg, fedor.sergeev, jrtc27, cfe-commits Differential Revision: https://reviews.llvm.org/D47138 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@333157 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains/Arch/Sparc.cpp b/lib/Driver/ToolChains/Arch/Sparc.cpp index 594ec9986d..c177031b9f 100644 --- a/lib/Driver/ToolChains/Arch/Sparc.cpp +++ b/lib/Driver/ToolChains/Arch/Sparc.cpp @@ -45,14 +45,29 @@ const char *sparc::getSparcAsmModeForCPU(StringRef Name, .Case("niagara2", "-Av8plusb") .Case("niagara3", "-Av8plusd") .Case("niagara4", "-Av8plusd") + .Case("ma2100", "-Aleon") + .Case("ma2150", "-Aleon") + .Case("ma2155", "-Aleon") + .Case("ma2450", "-Aleon") + .Case("ma2455", "-Aleon") + .Case("ma2x5x", "-Aleon") + .Case("ma2080", "-Aleon") + .Case("ma2085", "-Aleon") + .Case("ma2480", "-Aleon") + .Case("ma2485", "-Aleon") + .Case("ma2x8x", "-Aleon") + .Case("myriad2", "-Aleon") + .Case("myriad2.1", "-Aleon") + .Case("myriad2.2", "-Aleon") + .Case("myriad2.3", "-Aleon") .Case("leon2", "-Av8") .Case("at697e", "-Av8") .Case("at697f", "-Av8") - .Case("leon3", "-Av8") + .Case("leon3", "-Aleon") .Case("ut699", "-Av8") - .Case("gr712rc", "-Av8") - .Case("leon4", "-Av8") - .Case("gr740", "-Av8") + .Case("gr712rc", "-Aleon") + .Case("leon4", "-Aleon") + .Case("gr740", "-Aleon") .Default("-Av8"); } } diff --git a/test/Driver/sparc-as.c b/test/Driver/sparc-as.c index 80122cf6dc..65eeb4da39 100644 --- a/test/Driver/sparc-as.c +++ b/test/Driver/sparc-as.c @@ -76,6 +76,66 @@ // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=SPARC-V8PLUSD %s +// RUN: %clang -mcpu=ma2100 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2150 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2155 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2450 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2455 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2x5x -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2080 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2085 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2480 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2485 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=ma2x8x -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=myriad2 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=myriad2.1 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=myriad2.2 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %s + +// RUN: %clang -mcpu=myriad2.3 -no-canonical-prefixes -target sparc \ +// RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ +// RUN: | FileCheck -check-prefix=SPARC-LEON %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 @@ -90,7 +150,7 @@ // 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: | FileCheck -check-prefix=SPARC-LEON %s // RUN: %clang -mcpu=ut699 -no-canonical-prefixes -target sparc \ // RUN: -no-integrated-as --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \ @@ -98,18 +158,19 @@ // 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: | FileCheck -check-prefix=SPARC-LEON %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: | FileCheck -check-prefix=SPARC-LEON %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 +// RUN: | FileCheck -check-prefix=SPARC-LEON %s // SPARC: as{{.*}}" "-32" "-Av8" "-o" // SPARC-V8: as{{.*}}" "-32" "-Av8" "-o" +// SPARC-LEON: as{{.*}}" "-32" "-Aleon" "-o" // SPARC-SPARCLITE: as{{.*}}" "-32" "-Asparclite" "-o" // SPARC-SPARCLET: as{{.*}}" "-32" "-Asparclet" "-o" // SPARC-V8PLUS: as{{.*}}" "-32" "-Av8plus" "-o"