diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2009-11-19 08:59:28 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2009-11-19 08:59:28 +0000 |
| commit | 7d4538633051e831f1cc83816886bbafaa0e770d (patch) | |
| tree | bc7d702d3d7f66d1e9083201cc8327bc0d06a450 /lib/Target/SubtargetFeature.cpp | |
| parent | 907da171cc911d701da02a5cab898a9c49dd7724 (diff) | |
Notes
Diffstat (limited to 'lib/Target/SubtargetFeature.cpp')
| -rw-r--r-- | lib/Target/SubtargetFeature.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/Target/SubtargetFeature.cpp b/lib/Target/SubtargetFeature.cpp index 664a43cbcca7..590574ef3981 100644 --- a/lib/Target/SubtargetFeature.cpp +++ b/lib/Target/SubtargetFeature.cpp @@ -357,3 +357,30 @@ void SubtargetFeatures::print(raw_ostream &OS) const { void SubtargetFeatures::dump() const { print(errs()); } + +/// getDefaultSubtargetFeatures - Return a string listing +/// the features associated with the target triple. +/// +/// FIXME: This is an inelegant way of specifying the features of a +/// subtarget. It would be better if we could encode this information +/// into the IR. See <rdar://5972456>. +/// +std::string SubtargetFeatures::getDefaultSubtargetFeatures( + const Triple& Triple) { + switch (Triple.getVendor()) { + case Triple::Apple: + switch (Triple.getArch()) { + case Triple::ppc: // powerpc-apple-* + return std::string("altivec"); + case Triple::ppc64: // powerpc64-apple-* + return std::string("64bit,altivec"); + default: + break; + } + break; + default: + break; + } + + return std::string(""); +} |
