diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-10-06 09:17:41 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-10-06 09:17:41 +0000 |
commit | ff1beda569ef7e19b8c88a0ad6c69b88bf2cba35 (patch) | |
tree | cf346a254f354d0c365f95a93e70c43c50c1a8dd /llvm/lib/Target/X86/X86Subtarget.h | |
parent | 9274f72e5892e6bf75e9e23e4df85661e0fec264 (diff) | |
download | bcm5719-llvm-ff1beda569ef7e19b8c88a0ad6c69b88bf2cba35.tar.gz bcm5719-llvm-ff1beda569ef7e19b8c88a0ad6c69b88bf2cba35.zip |
Still need to support -mcpu=<> or cross compilation will fail. Doh.
llvm-svn: 30764
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.h')
-rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.h b/llvm/lib/Target/X86/X86Subtarget.h index e781d9527c8..b4907b64cf4 100644 --- a/llvm/lib/Target/X86/X86Subtarget.h +++ b/llvm/lib/Target/X86/X86Subtarget.h @@ -32,12 +32,19 @@ protected: NoMMXSSE, MMX, SSE1, SSE2, SSE3 }; + enum X863DNowEnum { + NoThreeDNow, ThreeDNow, ThreeDNowA + }; + /// AsmFlavor - Which x86 asm dialect to use. AsmWriterFlavorTy AsmFlavor; /// X86SSELevel - MMX, SSE1, SSE2, SSE3, or none supported. X86SSEEnum X86SSELevel; + /// X863DNowLevel - 3DNow or 3DNow Athlon, or none supported. + X863DNowEnum X863DNowLevel; + /// HasX86_64 - True if the processor supports X86-64 instructions. bool HasX86_64; @@ -74,9 +81,13 @@ public: /// aligned. unsigned getMinRepStrSizeThreshold() const { return MinRepStrSizeThreshold; } - /// DetectSubtargetFeatures - Auto-detect CPU features using CPUID instruction. - /// - void DetectSubtargetFeatures(); + /// 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); + + /// AutoDetectSubtargetFeatures - Auto-detect CPU features using CPUID + /// instruction. + void AutoDetectSubtargetFeatures(); bool is64Bit() const { return Is64Bit; } @@ -84,6 +95,8 @@ public: bool hasSSE1() const { return X86SSELevel >= SSE1; } bool hasSSE2() const { return X86SSELevel >= SSE2; } bool hasSSE3() const { return X86SSELevel >= SSE3; } + bool has3DNow() const { return X863DNowLevel >= ThreeDNow; } + bool has3DNowA() const { return X863DNowLevel >= ThreeDNowA; } bool isFlavorAtt() const { return AsmFlavor == att; } bool isFlavorIntel() const { return AsmFlavor == intel; } |