aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2011-12-01 18:23:59 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2011-12-01 18:23:59 +0000
commit61ea4fe2c230914061bfbf7f4b4530020e425250 (patch)
tree51a2f7d0ea910986583288a0940b8837b661afe3 /lib/Basic/Targets.cpp
parent5e35693721364673f8196e4f5a370f56b92e6053 (diff)
Add support for AMD's bulldozer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145606 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r--lib/Basic/Targets.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 3726fb8e0d..404160bc4f 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -1288,6 +1288,12 @@ class X86TargetInfo : public TargetInfo {
CK_OpteronSSE3,
CK_AMDFAM10,
+ /// \name K10
+ /// K10 architecture processors.
+ //@{
+ CK_BDVER1,
+ CK_BDVER2,
+
/// This specification is deprecated and will be removed in the future.
/// Users should prefer \see CK_K8.
// FIXME: Warn on this when the CPU is set to it.
@@ -1387,6 +1393,8 @@ public:
.Case("opteron", CK_Opteron)
.Case("opteron-sse3", CK_OpteronSSE3)
.Case("amdfam10", CK_AMDFAM10)
+ .Case("bdver1", CK_BDVER1)
+ .Case("bdver2", CK_BDVER2)
.Case("x86-64", CK_x86_64)
.Case("geode", CK_Geode)
.Default(CK_Generic);
@@ -1448,6 +1456,8 @@ public:
case CK_Opteron:
case CK_OpteronSSE3:
case CK_AMDFAM10:
+ case CK_BDVER1:
+ case CK_BDVER2:
case CK_x86_64:
return true;
}
@@ -1571,6 +1581,12 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
setFeatureEnabled(Features, "sse4a", true);
setFeatureEnabled(Features, "3dnowa", true);
break;
+ case CK_BDVER1:
+ case CK_BDVER2:
+ setFeatureEnabled(Features, "sse4", true);
+ setFeatureEnabled(Features, "sse4a", true);
+ setFeatureEnabled(Features, "aes", true);
+ break;
case CK_C3_2:
setFeatureEnabled(Features, "mmx", true);
setFeatureEnabled(Features, "sse", true);
@@ -1849,6 +1865,16 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts,
Builder.defineMacro("__amdfam10__");
Builder.defineMacro("__tune_amdfam10__");
break;
+ case CK_BDVER1:
+ Builder.defineMacro("__bdver1");
+ Builder.defineMacro("__bdver1__");
+ Builder.defineMacro("__tune__bdver1__");
+ break;
+ case CK_BDVER2:
+ Builder.defineMacro("__bdver2");
+ Builder.defineMacro("__bdver2__");
+ Builder.defineMacro("__tune__bdver2__");
+ break;
case CK_Geode:
Builder.defineMacro("__geode");
Builder.defineMacro("__geode__");