]> granicus.if.org Git - clang/commitdiff
On spacv8 f128 is only aligned to 64 bits.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 19 Dec 2013 03:03:04 +0000 (03:03 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 19 Dec 2013 03:03:04 +0000 (03:03 +0000)
LLVM already got this right.

Found on "Figure 3-1: Scalar Types" on http://sparc.com/standards/psABI3rd.pdf.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197651 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
test/CodeGen/target-data.c

index 0de37da809d598403cdf49ea90d10cf17bb60fc4..16f536066d074321fdccd61c34007dc86aed6d7f 100644 (file)
@@ -4506,9 +4506,7 @@ void SparcTargetInfo::getGCCRegAliases(const GCCRegAlias *&Aliases,
 class SparcV8TargetInfo : public SparcTargetInfo {
 public:
   SparcV8TargetInfo(const llvm::Triple &Triple) : SparcTargetInfo(Triple) {
-    // FIXME: Support Sparc quad-precision long double?
-    DescriptionString = "E-p:32:32-"
-                        "i64:64-n32-S64";
+    DescriptionString = "E-p:32:32-i64:64-f128:64-n32-S64";
   }
 
   virtual void getTargetDefines(const LangOptions &Opts,
index 5e05338208a34f81adc59bf0634bcf7c3f02af97..0af4b242788d8318e3cba14cf00601a2118e9b72 100644 (file)
@@ -24,7 +24,7 @@
 
 // RUN: %clang_cc1 -triple sparc-sun-solaris -emit-llvm -o - %s | \
 // RUN:     FileCheck %s --check-prefix=SPARC-V8
-// SPARC-V8: target datalayout = "E-p:32:32-i64:64-n32-S64"
+// SPARC-V8: target datalayout = "E-p:32:32-i64:64-f128:64-n32-S64"
 
 // RUN: %clang_cc1 -triple sparcv9-sun-solaris -emit-llvm -o - %s | \
 // RUN: FileCheck %s --check-prefix=SPARC-V9