Skip to content

Commit

Permalink
[Sparc] Use the leon arch for Leon3's when using an external assembler
Browse files Browse the repository at this point in the history
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

llvm-svn: 333157
  • Loading branch information
doac committed May 24, 2018
1 parent 85f0e50 commit cfba053
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 8 deletions.
23 changes: 19 additions & 4 deletions clang/lib/Driver/ToolChains/Arch/Sparc.cpp
Expand Up @@ -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");
}
}
Expand Down
69 changes: 65 additions & 4 deletions clang/test/Driver/sparc-as.c
Expand Up @@ -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
Expand All @@ -90,26 +150,27 @@

// 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 \
// 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: | 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"
Expand Down

0 comments on commit cfba053

Please sign in to comment.