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"; |