summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-10 22:59:57 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-10 22:59:57 +0000
commite2cf8f7b53da359e1a1d9ecbdf535e28c17e7e53 (patch)
treebfb995a9b67924953971ddbef78641a3800cb14e /clang/lib/Driver
parentf492c92761f8c1b0195419ede039ac7a33e8fd83 (diff)
downloadbcm5719-llvm-e2cf8f7b53da359e1a1d9ecbdf535e28c17e7e53.tar.gz
bcm5719-llvm-e2cf8f7b53da359e1a1d9ecbdf535e28c17e7e53.zip
Move X86 handling of -m[no-]soft-float and -m[no-]red-zone into AddX86TargetArgs.
llvm-svn: 81470
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/Tools.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 272a24766c8..ad1c50b4ae8 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -319,6 +319,22 @@ void Clang::AddARMTargetArgs(const ArgList &Args,
void Clang::AddX86TargetArgs(const ArgList &Args,
ArgStringList &CmdArgs) const {
+ // FIXME: This needs to change to use a clang-cc option, and set the attribute
+ // on functions.
+ if (!Args.hasFlag(options::OPT_mred_zone,
+ options::OPT_mno_red_zone,
+ true) ||
+ Args.hasArg(options::OPT_mkernel) ||
+ Args.hasArg(options::OPT_fapple_kext))
+ CmdArgs.push_back("--disable-red-zone");
+
+ // FIXME: This needs to change to use a clang-cc option, and set the attribute
+ // on functions.
+ if (Args.hasFlag(options::OPT_msoft_float,
+ options::OPT_mno_soft_float,
+ false))
+ CmdArgs.push_back("--no-implicit-float");
+
if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
// FIXME: We may need some translation here from the options gcc takes to
// names the LLVM backend understand?
@@ -521,16 +537,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("--unwind-tables=1");
else
CmdArgs.push_back("--unwind-tables=0");
- if (!Args.hasFlag(options::OPT_mred_zone,
- options::OPT_mno_red_zone,
- true) ||
- Args.hasArg(options::OPT_mkernel) ||
- Args.hasArg(options::OPT_fapple_kext))
- CmdArgs.push_back("--disable-red-zone");
- if (Args.hasFlag(options::OPT_msoft_float,
- options::OPT_mno_soft_float,
- false))
- CmdArgs.push_back("--no-implicit-float");
// FIXME: Handle -mtune=.
(void) Args.hasArg(options::OPT_mtune_EQ);
OpenPOWER on IntegriCloud