summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-05-13 11:11:24 +0000
committerNico Weber <nicolasweber@gmx.de>2014-05-13 11:11:24 +0000
commitad8e36c41aa15f525ec50bffcf755428e45d8f14 (patch)
tree3bd50c91bf2cf7b6375143aecbe3bc261e1a8638 /clang/lib/Driver/Tools.cpp
parent7d07fe20a03aa19579e5c52e380dfd91b855e651 (diff)
downloadbcm5719-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.cpp11
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) {
OpenPOWER on IntegriCloud