summaryrefslogtreecommitdiff
path: root/lib/Support/Triple.cpp
diff options
context:
space:
mode:
authorPete Couperus <petecoup@synopsys.com>2017-08-24 15:40:33 +0000
committerPete Couperus <petecoup@synopsys.com>2017-08-24 15:40:33 +0000
commit53355ce5747ab447f4484d72baeafa680798bd5c (patch)
tree7c3b96fead85f32f08df5b7dec9b6f3b7a355e67 /lib/Support/Triple.cpp
parentf372a9f69aa7d1462ca4a4d3a29e50fc8b2b1c0f (diff)
[ARC] Add ARC backend.
Add the ARC backend as an experimental target to lib/Target. Reviewed at: https://reviews.llvm.org/D36331 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311667 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/Triple.cpp')
-rw-r--r--lib/Support/Triple.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp
index b2d2d43e400..73dc59ce41b 100644
--- a/lib/Support/Triple.cpp
+++ b/lib/Support/Triple.cpp
@@ -25,6 +25,7 @@ StringRef Triple::getArchTypeName(ArchType Kind) {
case aarch64_be: return "aarch64_be";
case arm: return "arm";
case armeb: return "armeb";
+ case arc: return "arc";
case avr: return "avr";
case bpfel: return "bpfel";
case bpfeb: return "bpfeb";
@@ -83,6 +84,8 @@ StringRef Triple::getArchTypePrefix(ArchType Kind) {
case aarch64:
case aarch64_be: return "aarch64";
+ case arc: return "arc";
+
case arm:
case armeb:
case thumb:
@@ -255,6 +258,7 @@ Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) {
return StringSwitch<Triple::ArchType>(Name)
.Case("aarch64", aarch64)
.Case("aarch64_be", aarch64_be)
+ .Case("arc", arc)
.Case("arm64", aarch64) // "arm64" is an alias for "aarch64"
.Case("arm", arm)
.Case("armeb", armeb)
@@ -384,6 +388,7 @@ static Triple::ArchType parseArch(StringRef ArchName) {
.Case("xscaleeb", Triple::armeb)
.Case("aarch64", Triple::aarch64)
.Case("aarch64_be", Triple::aarch64_be)
+ .Case("arc", Triple::arc)
.Case("arm64", Triple::aarch64)
.Case("arm", Triple::arm)
.Case("armeb", Triple::armeb)
@@ -620,6 +625,7 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) {
return Triple::ELF;
case Triple::aarch64_be:
+ case Triple::arc:
case Triple::amdgcn:
case Triple::amdil:
case Triple::amdil64:
@@ -1173,6 +1179,7 @@ static unsigned getArchPointerBitWidth(llvm::Triple::ArchType Arch) {
case llvm::Triple::msp430:
return 16;
+ case llvm::Triple::arc:
case llvm::Triple::arm:
case llvm::Triple::armeb:
case llvm::Triple::hexagon:
@@ -1256,6 +1263,7 @@ Triple Triple::get32BitArchVariant() const {
case Triple::amdil:
case Triple::hsail:
case Triple::spir:
+ case Triple::arc:
case Triple::arm:
case Triple::armeb:
case Triple::hexagon:
@@ -1306,6 +1314,7 @@ Triple Triple::get64BitArchVariant() const {
Triple T(*this);
switch (getArch()) {
case Triple::UnknownArch:
+ case Triple::arc:
case Triple::avr:
case Triple::hexagon:
case Triple::kalimba: