From ad8e36c41aa15f525ec50bffcf755428e45d8f14 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Tue, 13 May 2014 11:11:24 +0000 Subject: Support -masm= flag for x86 targets. `clang -S -o - file.c -masm=att` will write assembly to stdout in at&t syntax (the default), `-masm=intel` will instead output intel style asm. llvm-svn: 208683 --- clang/lib/Driver/Tools.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'clang/lib/Driver') diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index fcd1275d6ba..1f9e12bb538 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1486,6 +1486,17 @@ void Clang::AddX86TargetArgs(const ArgList &Args, } if (NoImplicitFloat) CmdArgs.push_back("-no-implicit-float"); + + if (Arg *A = Args.getLastArg(options::OPT_masm_EQ)) { + StringRef Value = A->getValue(); + if (Value == "intel" || Value == "att") { + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back(Args.MakeArgString("-x86-asm-syntax=" + Value)); + } else { + getToolChain().getDriver().Diag(diag::err_drv_unsupported_option_argument) + << A->getOption().getName() << Value; + } + } } static inline bool HasPICArg(const ArgList &Args) { -- cgit v1.2.3