ccc: Basic translation of gcc subtarget feature options to LLVM
options (i.e., -mno-red-zone, -msoft-float, -mno-sse, etc.)
 - Also, make sure unwind tables default to on Darwin/x86_64.
 - PR3604.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65118 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Arguments.py b/tools/ccc/ccclib/Arguments.py
index 4a1c7eb..78d558b 100644
--- a/tools/ccc/ccclib/Arguments.py
+++ b/tools/ccc/ccclib/Arguments.py
@@ -846,6 +846,7 @@
         self.f_timeReportOption = self.addOption(FlagOption('-ftime-report', self.Clang_fGroup))
         self.f_traditionalOption = self.addOption(FlagOption('-ftraditional', self.fGroup))
         self.f_unwindTablesOption = self.addOption(FlagOption('-funwind-tables', self.fGroup))
+        self.f_noUnwindTablesOption = self.addOption(FlagOption('-fno-unwind-tables', self.fGroup))
         self.f_writableStringsOption = self.addOption(FlagOption('-fwritable-strings', self.Clang_fGroup))
         self.f_zeroInitializedInBssOption = self.addOption(FlagOption('-fzero-initialized-in-bss', self.fGroup))
         self.fOption = self.addOption(JoinedOption('-f', self.fGroup))
@@ -867,6 +868,31 @@
         self.m_noPascalStringsOption = self.addOption(FlagOption('-mno-pascal-strings', self.mGroup))
         self.m_tuneOption = self.addOption(JoinedOption('-mtune=', self.mGroup))
 
+        self.m_mmxOption = self.addOption(FlagOption('-mmmx', self.mGroup))
+        self.m_noMmxOption = self.addOption(FlagOption('-mno-mmx', self.mGroup))
+        self.m_sseOption = self.addOption(FlagOption('-msse', self.mGroup))
+        self.m_noSseOption = self.addOption(FlagOption('-mno-sse', self.mGroup))
+        self.m_sse2Option = self.addOption(FlagOption('-msse2', self.mGroup))
+        self.m_noSse2Option = self.addOption(FlagOption('-mno-sse2', self.mGroup))
+        self.m_sse3Option = self.addOption(FlagOption('-msse3', self.mGroup))
+        self.m_noSse3Option = self.addOption(FlagOption('-mno-sse3', self.mGroup))
+        self.m_ssse3Option = self.addOption(FlagOption('-mssse3', self.mGroup))
+        self.m_noSsse3Option = self.addOption(FlagOption('-mno-ssse3', self.mGroup))
+        self.m_sse41Option = self.addOption(FlagOption('-msse41', self.mGroup))
+        self.m_noSse41Option = self.addOption(FlagOption('-mno-sse41', self.mGroup))
+        self.m_sse42Option = self.addOption(FlagOption('-msse42', self.mGroup))
+        self.m_noSse42Option = self.addOption(FlagOption('-mno-sse42', self.mGroup))
+        self.m_sse4aOption = self.addOption(FlagOption('-msse4a', self.mGroup))
+        self.m_noSse4aOption = self.addOption(FlagOption('-mno-sse4a', self.mGroup))
+        self.m_3dnowOption = self.addOption(FlagOption('-m3dnow', self.mGroup))
+        self.m_no3dnowOption = self.addOption(FlagOption('-mno-3dnow', self.mGroup))
+        self.m_3dnowaOption = self.addOption(FlagOption('-m3dnowa', self.mGroup))
+        self.m_no3dnowaOption = self.addOption(FlagOption('-mno-3dnowa', self.mGroup))
+        self.m_redZoneOption = self.addOption(FlagOption('-mred-zone', self.mGroup))
+        self.m_noRedZoneOption = self.addOption(FlagOption('-mno-red-zone', self.mGroup))
+        self.m_softFloatOption = self.addOption(FlagOption('-msoft-float', self.mGroup))
+        self.m_noSoftFloatOption = self.addOption(FlagOption('-mno-soft-float', self.mGroup))
+
         # Ugh. Need to disambiguate our naming convetion. -m x goes to
         # the linker sometimes, wheres -mxxxx is used for a variety of
         # other things.