summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2014-10-15 19:47:15 +0000
committerJoerg Sonnenberger <joerg@bec.de>2014-10-15 19:47:15 +0000
commit3f1a935548e576c0f8491435fdde8d7d3c6006ae (patch)
treec1838806b8c80caf9c2713e2c24ae82aa5fb0770 /clang/lib/Basic/Targets.cpp
parent2ceaeb6bafa2dba0e1f5458aebc3d21f2552bec3 (diff)
downloadbcm5719-llvm-3f1a935548e576c0f8491435fdde8d7d3c6006ae.tar.gz
bcm5719-llvm-3f1a935548e576c0f8491435fdde8d7d3c6006ae.zip
Set ABI and DescriptionString first to reduce OS specific logic.
Use switch for FreeBSD check to allow easier extension. llvm-svn: 219838
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 0ca45c9c4c7..d6c6d5b601f 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -1288,18 +1288,21 @@ public:
IntMaxType = SignedLong;
Int64Type = SignedLong;
- if (getTriple().getOS() == llvm::Triple::FreeBSD) {
+ if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+ DescriptionString = "e-m:e-i64:64-n32:64";
+ ABI = "elfv2";
+ } else {
+ DescriptionString = "E-m:e-i64:64-n32:64";
+ ABI = "elfv1";
+ }
+
+ switch (getTriple().getOS()) {
+ case llvm::Triple::FreeBSD:
LongDoubleWidth = LongDoubleAlign = 64;
LongDoubleFormat = &llvm::APFloat::IEEEdouble;
- DescriptionString = "E-m:e-i64:64-n32:64";
- } else {
- if ((Triple.getArch() == llvm::Triple::ppc64le)) {
- DescriptionString = "e-m:e-i64:64-n32:64";
- ABI = "elfv2";
- } else {
- DescriptionString = "E-m:e-i64:64-n32:64";
- ABI = "elfv1";
- }
+ break;
+ default:
+ break;
}
// PPC64 supports atomics up to 8 bytes.
OpenPOWER on IntegriCloud