From: Daniel Sanders Date: Tue, 22 Sep 2015 13:52:32 +0000 (+0000) Subject: [mips] Added support for using the command line options -Wa,-msoft-float and -Wa... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=309886d9094cbd372567a4955327a026ef5de58f;p=clang [mips] Added support for using the command line options -Wa,-msoft-float and -Wa,-mhard-float. Patch by Scott Egerton. Reviewers: vkalintiris, dsanders Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D12600 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@248276 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index cd1dd73c8e..d3afe3c36f 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2383,6 +2383,12 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, } else if (Value == "--break") { CmdArgs.push_back("-target-feature"); CmdArgs.push_back("-use-tcc-in-div"); + } else if (Value.startswith("-msoft-float")) { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+soft-float"); + } else if (Value.startswith("-mhard-float")) { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("-soft-float"); } else { D.Diag(diag::err_drv_unsupported_option_argument) << A->getOption().getName() << Value; diff --git a/test/Driver/mips-ias-Wa.s b/test/Driver/mips-ias-Wa.s index a542493af6..233d062d6d 100644 --- a/test/Driver/mips-ias-Wa.s +++ b/test/Driver/mips-ias-Wa.s @@ -22,3 +22,28 @@ // RUN: FileCheck -check-prefix=TRAP-BOTH-BREAK-FIRST %s // TRAP-BOTH-BREAK-FIRST: -cc1as // TRAP-BOTH-BREAK-FIRST: "-target-feature" "-use-tcc-in-div" "-target-feature" "+use-tcc-in-div" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ +// RUN: FileCheck -check-prefix=MSOFT-FLOAT-DEFAULT %s +// MSOFT-FLOAT-DEFAULT: -cc1as +// MSOFT-FLOAT-DEFAULT-NOT: "-target-feature" "-soft-float" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,-msoft-float 2>&1 | \ +// RUN: FileCheck -check-prefix=MSOFT-FLOAT-ON %s +// MSOFT-FLOAT-ON: -cc1as +// MSOFT-FLOAT-ON: "-target-feature" "+soft-float" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,-mhard-float 2>&1 | \ +// RUN: FileCheck -check-prefix=MSOFT-FLOAT-OFF %s +// MSOFT-FLOAT-OFF: -cc1as +// MSOFT-FLOAT-OFF: "-target-feature" "-soft-float" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,-msoft-float,-mhard-float 2>&1 | \ +// RUN: FileCheck -check-prefix=MSOFT-FLOAT-BOTH-MSOFT-FLOAT-FIRST %s +// MSOFT-FLOAT-BOTH-MSOFT-FLOAT-FIRST: -cc1as +// MSOFT-FLOAT-BOTH-MSOFT-FLOAT-FIRST: "-target-feature" "+soft-float" "-target-feature" "-soft-float" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,-mhard-float,-msoft-float 2>&1 | \ +// RUN: FileCheck -check-prefix=MSOFT-FLOAT-BOTH-MHARD-FLOAT-FIRST %s +// MSOFT-FLOAT-BOTH-MHARD-FLOAT-FIRST: -cc1as +// MSOFT-FLOAT-BOTH-MHARD-FLOAT-FIRST: "-target-feature" "-soft-float" "-target-feature" "+soft-float"