diff options
| author | Nico Weber <nicolasweber@gmx.de> | 2014-05-13 11:11:24 +0000 |
|---|---|---|
| committer | Nico Weber <nicolasweber@gmx.de> | 2014-05-13 11:11:24 +0000 |
| commit | ad8e36c41aa15f525ec50bffcf755428e45d8f14 (patch) | |
| tree | 3bd50c91bf2cf7b6375143aecbe3bc261e1a8638 /clang/lib/Driver/Tools.cpp | |
| parent | 7d07fe20a03aa19579e5c52e380dfd91b855e651 (diff) | |
| download | bcm5719-llvm-ad8e36c41aa15f525ec50bffcf755428e45d8f14.tar.gz bcm5719-llvm-ad8e36c41aa15f525ec50bffcf755428e45d8f14.zip | |
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
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
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) { |

