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