svn commit: r255381 - projects/arm_eabi_vfp/contrib/llvm/tools/clang/lib/Driver

Andrew Turner andrew at FreeBSD.org
Sat Sep 7 22:17:45 UTC 2013


Author: andrew
Date: Sat Sep  7 22:17:45 2013
New Revision: 255381
URL: http://svnweb.freebsd.org/changeset/base/255381

Log:
  Set the default ABI to the softfp version on armv6. This is compatible with
  the existing ABI as it passes floating-point values in ARM regsters. It is
  allowed to use VFP instructions as required instead of calling into the
  softfloat code.

Modified:
  projects/arm_eabi_vfp/contrib/llvm/tools/clang/lib/Driver/Tools.cpp

Modified: projects/arm_eabi_vfp/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
==============================================================================
--- projects/arm_eabi_vfp/contrib/llvm/tools/clang/lib/Driver/Tools.cpp	Sat Sep  7 22:14:30 2013	(r255380)
+++ projects/arm_eabi_vfp/contrib/llvm/tools/clang/lib/Driver/Tools.cpp	Sat Sep  7 22:17:45 2013	(r255381)
@@ -664,11 +664,17 @@ static StringRef getARMFloatABI(const Dr
       case llvm::Triple::GNUEABIHF:
         FloatABI = "hard";
          break;
-      default:
-        // FreeBSD defaults to soft float
-        FloatABI = "soft";
+      default: {
+        std::string ArchName =
+          getLLVMArchSuffixForARM(getARMTargetCPU(Args, Triple));
+        if (StringRef(ArchName).startswith("v6") ||
+            StringRef(ArchName).startswith("v7"))
+          FloatABI = "softfp";
+        else
+          FloatABI = "soft";
         break;
       }
+      }
       break;
 
     default:


More information about the svn-src-projects mailing list