Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Sep 2013 22:17:45 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r255381 - projects/arm_eabi_vfp/contrib/llvm/tools/clang/lib/Driver
Message-ID:  <201309072217.r87MHjWt026617@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309072217.r87MHjWt026617>