| Index: lib/Basic/Targets.cpp
|
| diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
|
| index de1b22d203eee3517d16000ca8a06ae204f6fb7f..3c4aa75748ba9967639bbe41e1e46f2c56d4a8b0 100644
|
| --- a/lib/Basic/Targets.cpp
|
| +++ b/lib/Basic/Targets.cpp
|
| @@ -640,17 +640,17 @@ public:
|
| // RegParmMax is inherited from the underlying architecture
|
| this->LongDoubleFormat = &llvm::APFloat::IEEEdouble;
|
| if (Triple.getArch() == llvm::Triple::arm) {
|
| - this->DescriptionString =
|
| - "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S128";
|
| + // @LOCALMOD
|
| + // Handled in ARM's setABI().
|
| } else if (Triple.getArch() == llvm::Triple::x86) {
|
| - this->DescriptionString = "e-m:e-p:32:32-i64:64-n8:16:32-S128";
|
| + this->DescriptionString = "e-m:e-p:32:32-i64:64-f80:32-n8:16:32-S128";
|
| } else if (Triple.getArch() == llvm::Triple::x86_64) {
|
| - this->DescriptionString = "e-m:e-p:32:32-i64:64-n8:16:32:64-S128";
|
| + this->DescriptionString = "e-m:e-p:32:32-i64:64-f80:128-n8:16:32:64-S128";
|
| } else if (Triple.getArch() == llvm::Triple::mipsel) {
|
| // Handled on mips' setDescriptionString.
|
| } else {
|
| assert(Triple.getArch() == llvm::Triple::le32);
|
| - this->DescriptionString = "e-p:32:32-i64:64";
|
| + this->DescriptionString = "e-p:32:32-i64:64-n32";
|
| }
|
| }
|
| typename Target::CallingConvCheckResult checkCallingConvention(
|
| @@ -3735,7 +3735,12 @@ class ARMTargetInfo : public TargetInfo {
|
| "-a:0:32"
|
| "-n32"
|
| "-S64";
|
| + // @LOCALMOD-BEGIN
|
| + } else if (T.isOSNaCl()) {
|
| + assert(!BigEndian && "NaCl on ARM does not support big endian");
|
| + DescriptionString = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S128";
|
| } else {
|
| + // @LOCALMOD-END
|
| DescriptionString =
|
| BigEndian ? "E-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
| : "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64";
|
|
|