|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
From 1cec99f6d53d442d8a8c9d2ed9f4a58f8fdc6412 Mon Sep 17 00:00:00 2001
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
From: Natanael Copa <ncopa@alpinelinux.org>
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
Date: Thu, 18 Feb 2016 08:30:07 +0100
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
Subject: [PATCH 1/3] Add Musl, MuslEABI and Musl EABIHF triples
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
---
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
include/llvm/ADT/Triple.h | 11 +++++++++++
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
lib/Support/Triple.cpp | 7 +++++++
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
lib/Target/ARM/ARMSubtarget.h | 3 +++
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
lib/Target/ARM/ARMTargetMachine.cpp | 2 ++
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
4 files changed, 23 insertions(+)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
index e01db0a..2fc4fc1 100644
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
--- a/include/llvm/ADT/Triple.h
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+++ b/include/llvm/ADT/Triple.h
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -174,6 +174,10 @@ public:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
EABIHF,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
Android,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ Musl,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ MuslEABI,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ MuslEABIHF,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
MSVC,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
Itanium,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
Cygnus,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -544,6 +548,13 @@ public:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
/// Tests whether the target is Android
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
bool isAndroid() const { return getEnvironment() == Triple::Android; }
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ /// Tests whether the target is musl libc
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ bool isMusl() const {
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ return getEnvironment() == Triple::Musl ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ getEnvironment() == Triple::MuslEABI ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ getEnvironment() == Triple::MuslEABIHF;
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ }
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
/// @}
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
/// @name Mutators
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
/// @{
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
index 11afcf7..d90a06a 100644
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
--- a/lib/Support/Triple.cpp
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+++ b/lib/Support/Triple.cpp
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -199,6 +199,9 @@ const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) {
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case CODE16: return "code16";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case EABI: return "eabi";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case EABIHF: return "eabihf";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ case Musl: return "musl";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ case MuslEABIHF: return "muslgnueabihf";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ case MuslEABI: return "muslgnueabi";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case Android: return "android";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case MSVC: return "msvc";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case Itanium: return "itanium";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -454,6 +457,9 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
.StartsWith("code16", Triple::CODE16)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
.StartsWith("gnu", Triple::GNU)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
.StartsWith("android", Triple::Android)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ .StartsWith("muslgnueabihf", Triple::MuslEABIHF)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ .StartsWith("muslgnueabi", Triple::MuslEABI)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ .StartsWith("musl", Triple::Musl)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
.StartsWith("msvc", Triple::MSVC)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
.StartsWith("itanium", Triple::Itanium)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
.StartsWith("cygnus", Triple::Cygnus)
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -1431,6 +1437,7 @@ StringRef Triple::getARMCPUForArch(StringRef MArch) const {
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
switch (getEnvironment()) {
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case llvm::Triple::EABIHF:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case llvm::Triple::GNUEABIHF:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ case llvm::Triple::MuslEABIHF:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
return "arm1176jzf-s";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
default:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
return "arm7tdmi";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
index 4d54e57..7ed7ab7 100644
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
--- a/lib/Target/ARM/ARMSubtarget.h
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+++ b/lib/Target/ARM/ARMSubtarget.h
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -405,8 +405,10 @@ public:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
bool isTargetEHABICompatible() const {
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
return (TargetTriple.getEnvironment() == Triple::EABI ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
TargetTriple.getEnvironment() == Triple::GNUEABI ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ TargetTriple.getEnvironment() == Triple::MuslEABI ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
TargetTriple.getEnvironment() == Triple::EABIHF ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
isTargetAndroid()) &&
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
!isTargetDarwin() && !isTargetWindows();
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
}
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -415,6 +417,7 @@ public:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
// FIXME: this is invalid for WindowsCE
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
return TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
TargetTriple.getEnvironment() == Triple::EABIHF ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
isTargetWindows() || isAAPCS16_ABI();
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
}
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
bool isTargetAndroid() const { return TargetTriple.isAndroid(); }
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
index fca1901..25f5cf9 100644
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
--- a/lib/Target/ARM/ARMTargetMachine.cpp
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+++ b/lib/Target/ARM/ARMTargetMachine.cpp
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
@@ -101,6 +101,8 @@ computeTargetABI(const Triple &TT, StringRef CPU,
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case llvm::Triple::GNUEABIHF:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case llvm::Triple::EABIHF:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case llvm::Triple::EABI:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ case llvm::Triple::MuslEABI:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
+ case llvm::Triple::MuslEABIHF:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
TargetABI = ARMBaseTargetMachine::ARM_ABI_AAPCS;
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
break;
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
case llvm::Triple::GNU:
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
--
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
2.7.3
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
585426 |
|