Added preliminary x86 subtarget support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25645 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 22b611b..072b54e 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -30,6 +30,14 @@
   /// Used by instruction selector
   bool indirectExternAndWeakGlobals;
 
+  /// Arch. features used by isel.
+  bool Is64Bit;
+  bool HasMMX;
+  bool HasSSE;
+  bool HasSSE2;
+  bool HasSSE3;
+  bool Has3DNow;
+  bool Has3DNowA;
 public:
   enum {
     isELF, isCygwin, isDarwin, isWindows
@@ -51,6 +59,19 @@
   bool getIndirectExternAndWeakGlobals() const {
     return indirectExternAndWeakGlobals;
   }
+
+  /// ParseSubtargetFeatures - Parses features string setting specified 
+  /// subtarget options.  Definition of function is auto generated by tblgen.
+  void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
+
+  bool is64Bit() const { return Is64Bit; }
+
+  bool hasMMX() const { return HasMMX; }
+  bool hasSSE() const { return HasSSE; }
+  bool hasSSE2() const { return HasSSE2; }
+  bool hasSSE3() const { return HasSSE3; }
+  bool has3DNow() const { return Has3DNow; }
+  bool has3DNowA() const { return Has3DNowA; }
 };
 } // End llvm namespace