diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2014-10-15 19:47:15 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2014-10-15 19:47:15 +0000 |
commit | 3f1a935548e576c0f8491435fdde8d7d3c6006ae (patch) | |
tree | c1838806b8c80caf9c2713e2c24ae82aa5fb0770 /clang/lib/Basic/Targets.cpp | |
parent | 2ceaeb6bafa2dba0e1f5458aebc3d21f2552bec3 (diff) | |
download | bcm5719-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.cpp | 23 |
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. |