Fix a cross-build issue. The asmsyntax shouldn't be affected by the build
authorChris Lattner <sabre@nondot.org>
Thu, 7 Sep 2006 22:29:41 +0000 (22:29 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 7 Sep 2006 22:29:41 +0000 (22:29 +0000)
host, it should be affected by the target.  Allow the command line option to
override in either case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30164 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86Subtarget.cpp

index 5107f912f36582af0f90e19e1d1b24cbae81b455..e3776d87a5f0506d13812b0ba97ce6d985b0de74 100644 (file)
 using namespace llvm;
 
 cl::opt<X86Subtarget::AsmWriterFlavorTy>
-AsmWriterFlavor("x86-asm-syntax",
+AsmWriterFlavor("x86-asm-syntax", cl::init(X86Subtarget::unset),
   cl::desc("Choose style of code to emit from X86 backend:"),
   cl::values(
     clEnumValN(X86Subtarget::att,   "att",   "  Emit AT&T-style assembly"),
     clEnumValN(X86Subtarget::intel, "intel", "  Emit Intel-style assembly"),
-    clEnumValEnd),
-#ifdef _MSC_VER
-  cl::init(X86Subtarget::intel)
-#else
-  cl::init(X86Subtarget::att)
-#endif
-                );
+    clEnumValEnd));
 
 /// GetCpuIDAndInfo - Execute the specified cpuid and return the 4 values in the
 /// specified arguments.  If we can't run cpuid on the host, return true.
@@ -199,6 +193,16 @@ X86Subtarget::X86Subtarget(const Module &M, const std::string &FS) {
 #endif
   }
 
+  // If the asm syntax hasn't been overridden on the command line, use whatever
+  // the target wants.
+  if (AsmFlavor == X86Subtarget::unset) {
+    if (TargetType == isWindows) {
+      AsmFlavor = X86Subtarget::intel;
+    } else {
+      AsmFlavor = X86Subtarget::att;
+    }
+  }
+
   if (TargetType == isDarwin || TargetType == isCygwin)
     stackAlignment = 16;
 }