summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/TargetInfo.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2012-10-11 16:55:58 +0000
committerDerek Schuff <dschuff@google.com>2012-10-11 16:55:58 +0000
commit57b7e8f63fea1225c4e18e6a42daae37a86f63f4 (patch)
treef8018d377984bca7dd69f915fdbe4c8bd8d8c386 /clang/lib/CodeGen/TargetInfo.cpp
parentd0d7860f409778cb80d9c4e88339cbb0c321a807 (diff)
downloadbcm5719-llvm-57b7e8f63fea1225c4e18e6a42daae37a86f63f4.tar.gz
bcm5719-llvm-57b7e8f63fea1225c4e18e6a42daae37a86f63f4.zip
Properly factor Native Client defines to support NaCl as an OS
with x86/ARM architecture llvm-svn: 165722
Diffstat (limited to 'clang/lib/CodeGen/TargetInfo.cpp')
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index 3136245a9a1..887ca890bce 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -1333,7 +1333,10 @@ void X86_64ABIInfo::classify(QualType Ty, uint64_t OffsetBase,
Hi = Integer;
} else if (k >= BuiltinType::Bool && k <= BuiltinType::LongLong) {
Current = Integer;
- } else if (k == BuiltinType::Float || k == BuiltinType::Double) {
+ } else if ((k == BuiltinType::Float || k == BuiltinType::Double) ||
+ (k == BuiltinType::LongDouble &&
+ getContext().getTargetInfo().getTriple().getOS() ==
+ llvm::Triple::NativeClient)) {
Current = SSE;
} else if (k == BuiltinType::LongDouble) {
Lo = X87;
@@ -1419,7 +1422,10 @@ void X86_64ABIInfo::classify(QualType Ty, uint64_t OffsetBase,
Lo = Hi = Integer;
} else if (ET == getContext().FloatTy)
Current = SSE;
- else if (ET == getContext().DoubleTy)
+ else if (ET == getContext().DoubleTy ||
+ (ET == getContext().LongDoubleTy &&
+ getContext().getTargetInfo().getTriple().getOS() ==
+ llvm::Triple::NativeClient))
Lo = Hi = SSE;
else if (ET == getContext().LongDoubleTy)
Current = ComplexX87;
OpenPOWER on IntegriCloud