diff options
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r-- | lib/Basic/Targets.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 4d0a833d23..4647970295 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -661,7 +661,9 @@ public: ArchDefine603 = 1 << 4, ArchDefine604 = 1 << 5, ArchDefinePwr4 = 1 << 6, - ArchDefinePwr6 = 1 << 7 + ArchDefinePwr6 = 1 << 7, + ArchDefineA2 = 1 << 8, + ArchDefineA2q = 1 << 9 } ArchDefineTypes; virtual bool setCPU(const std::string &Name) { @@ -686,6 +688,7 @@ public: .Case("970", true) .Case("g5", true) .Case("a2", true) + .Case("a2q", true) .Case("e500mc", true) .Case("e5500", true) .Case("pwr6", true) @@ -894,6 +897,8 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, .Case("pwr6", ArchDefinePwr6 | ArchDefinePpcgr | ArchDefinePpcsq) .Case("pwr7", ArchDefineName | ArchDefinePwr6 | ArchDefinePpcgr | ArchDefinePpcsq) + .Case("a2", ArchDefineA2) + .Case("a2q", ArchDefineName | ArchDefineA2 | ArchDefineA2q) .Default(ArchDefineNone); if (defs & ArchDefineName) @@ -913,7 +918,20 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, if (defs & ArchDefinePwr6) { Builder.defineMacro("_ARCH_PWR5"); Builder.defineMacro("_ARCH_PWR6"); - } + } + if (defs & ArchDefineA2) + Builder.defineMacro("_ARCH_A2"); + if (defs & ArchDefineA2q) { + Builder.defineMacro("_ARCH_A2Q"); + Builder.defineMacro("_ARCH_QP"); + } + + if (getTriple().getVendor() == llvm::Triple::BGQ) { + Builder.defineMacro("__bg__"); + Builder.defineMacro("__THW_BLUEGENE__"); + Builder.defineMacro("__bgq__"); + Builder.defineMacro("__TOS_BGQ__"); + } } void PPCTargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const { |