summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-22 21:44:58 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-22 21:44:58 +0000
commit03184798c3040576e22098abbf197f836c871a29 (patch)
tree831fcd926c56752f715e356bbfb2b12de0958d1e
parentba4490399b6716cc57297506bdaf3c440d000d0d (diff)
downloadbcm5719-llvm-03184798c3040576e22098abbf197f836c871a29.tar.gz
bcm5719-llvm-03184798c3040576e22098abbf197f836c871a29.zip
Reconcile Clang/ARM target data string with llvm-gcc (module eabi weirdness).
llvm-svn: 82578
-rw-r--r--clang/lib/Basic/Targets.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index f626f658db0..f620581cb49 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -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.
OpenPOWER on IntegriCloud