From: Joey Gouly Date: Thu, 27 Jun 2013 13:19:54 +0000 (+0000) Subject: Add support for passing v8fp options via -mfpu. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cbed3bfe79bbd16ced68078c7385bd21151f44cd;p=clang Add support for passing v8fp options via -mfpu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185075 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index b5a5cbe7a0..9c375cb880 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -3681,7 +3681,7 @@ public: bool Enabled) const { if (Name == "soft-float" || Name == "soft-float-abi" || Name == "vfp2" || Name == "vfp3" || Name == "vfp4" || Name == "neon" || - Name == "d16" || Name == "neonfp") { + Name == "d16" || Name == "neonfp" || Name == "v8fp") { Features[Name] = Enabled; } else return false; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 925a18faaf..7d634f55bc 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -590,6 +590,14 @@ static void addFPUArgs(const Driver &D, const Arg *A, const ArgList &Args, CmdArgs.push_back("+vfp3"); CmdArgs.push_back("-target-feature"); CmdArgs.push_back("-neon"); + } else if (FPU == "fp-armv8") { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+v8fp"); + } else if (FPU == "neon-fp-armv8") { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+v8fp"); + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+neon"); } else if (FPU == "neon") { CmdArgs.push_back("-target-feature"); CmdArgs.push_back("+neon"); diff --git a/test/Driver/arm-mfpu.c b/test/Driver/arm-mfpu.c index f51c41ed3f..3e579f10a2 100644 --- a/test/Driver/arm-mfpu.c +++ b/test/Driver/arm-mfpu.c @@ -46,3 +46,12 @@ // RUN: %clang -target arm-linux-eabi -msoft-float %s -### -o %t.o 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-SOFT-FLOAT %s // CHECK-SOFT-FLOAT: "-target-feature" "-neon" + +// RUN: %clang -target armv8-linux-gnueabihf -mfpu=fp-armv8 %s -### 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-FP-ARMV8 %s +// CHECK-FP-ARMV8: "-target-feature" "+v8fp" + +// RUN: %clang -target armv8-linux-gnueabihf -mfpu=neon-fp-armv8 %s -### 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-NEON-FP-ARMV8 %s +// CHECK-NEON-FP-ARMV8: "-target-feature" "+v8fp" +// CHECK-NEON-FP-ARMV8: "-target-feature" "+neon"