]> granicus.if.org Git - clang/commitdiff
Reconcile Clang/ARM target data string with llvm-gcc (module eabi weirdness).
authorDaniel Dunbar <daniel@zuster.org>
Tue, 22 Sep 2009 21:44:58 +0000 (21:44 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 22 Sep 2009 21:44:58 +0000 (21:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82578 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp

index f626f658db05b03e81e19721d16ba96fbde204ea..f620581cb494596d1b7784804ef3097faa565983 100644 (file)
@@ -1037,9 +1037,6 @@ public:
   {
     llvm::Triple Triple(TripleStr);
 
-    DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-"
-                         "i64:32:32-f32:32:32-f64:32:32-"
-                         "v64:64:64-v128:128:128-a0:0:32");
     SizeType = UnsignedInt;
     PtrDiffType = SignedInt;
 
@@ -1065,6 +1062,16 @@ public:
 
     if (Arch.startswith("thumb"))
       IsThumb = true;
+
+    if (IsThumb) {
+      DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-"
+                           "i64:64:64-f32:32:32-f64:64:64-"
+                           "v64:64:64-v128:128:128-a0:0:32");
+    } else {
+      DescriptionString = ("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
+                           "i64:64:64-f32:32:32-f64:64:64-"
+                           "v64:64:64-v128:128:128-a0:0:64");
+    }
   }
   virtual const char *getABI() const { return ABI.c_str(); }
   virtual bool setABI(const std::string &Name) {
@@ -1078,6 +1085,16 @@ public:
       DoubleAlign = LongLongAlign = 32;
       SizeType = UnsignedLong;
 
+      if (IsThumb) {
+        DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-"
+                             "i64:32:32-f32:32:32-f64:32:32-"
+                             "v64:64:64-v128:128:128-a0:0:32");
+      } else {
+        DescriptionString = ("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
+                             "i64:32:32-f32:32:32-f64:32:32-"
+                             "v64:64:64-v128:128:128-a0:0:64");
+      }
+
       // FIXME: Override "preferred align" for double and long long.
     } else if (Name == "aapcs") {
       // FIXME: Enumerated types are variable width in straight AAPCS.