]> granicus.if.org Git - clang/commitdiff
Support EABIHF environment on ARM.
authorJoerg Sonnenberger <joerg@bec.de>
Mon, 16 Dec 2013 19:16:04 +0000 (19:16 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Mon, 16 Dec 2013 19:16:04 +0000 (19:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197406 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/TargetInfo.cpp
lib/Driver/Tools.cpp

index 7879207a2c7ad33d0d0dd72db15c16327a60a911..6b756457e8229d3f7b3ec69668c181ac70a0bde9 100644 (file)
@@ -3074,6 +3074,7 @@ public:
     switch (getTarget().getTriple().getEnvironment()) {
     case llvm::Triple::Android:
     case llvm::Triple::EABI:
+    case llvm::Triple::EABIHF:
     case llvm::Triple::GNUEABI:
     case llvm::Triple::GNUEABIHF:
       return true;
@@ -3082,6 +3083,16 @@ public:
     }
   }
 
+  bool isEABIHF() const {
+    switch (getTarget().getTriple().getEnvironment()) {
+    case llvm::Triple::EABIHF:
+    case llvm::Triple::GNUEABIHF:
+      return true;
+    default:
+      return false;
+    }
+  }
+
   ABIKind getABIKind() const { return Kind; }
 
 private:
@@ -3215,7 +3226,7 @@ void ARMABIInfo::computeInfo(CGFunctionInfo &FI) const {
 /// Return the default calling convention that LLVM will use.
 llvm::CallingConv::ID ARMABIInfo::getLLVMDefaultCC() const {
   // The default calling convention that LLVM will infer.
-  if (getTarget().getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
+  if (isEABIHF())
     return llvm::CallingConv::ARM_AAPCS_VFP;
   else if (isEABI())
     return llvm::CallingConv::ARM_AAPCS;
index d32a422adb23ccbbd991c3e1852015ee4ea99942..bd0d864ed7981a3fa83d54eb6fe52617a6b9451a 100644 (file)
@@ -652,6 +652,9 @@ StringRef tools::arm::getARMFloatABI(const Driver &D, const ArgList &Args,
       case llvm::Triple::GNUEABI:
         FloatABI = "softfp";
         break;
+      case llvm::Triple::EABIHF:
+        FloatABI = "hard";
+        break;
       case llvm::Triple::EABI:
         // EABI is always AAPCS, and if it was not marked 'hard', it's softfp
         FloatABI = "softfp";
@@ -757,6 +760,7 @@ void Clang::AddARMTargetArgs(const ArgList &Args,
     case llvm::Triple::GNUEABIHF:
       ABIName = "aapcs-linux";
       break;
+    case llvm::Triple::EABIHF:
     case llvm::Triple::EABI:
       ABIName = "aapcs";
       break;