diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-09-22 21:44:58 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-09-22 21:44:58 +0000 |
| commit | 03184798c3040576e22098abbf197f836c871a29 (patch) | |
| tree | 831fcd926c56752f715e356bbfb2b12de0958d1e | |
| parent | ba4490399b6716cc57297506bdaf3c440d000d0d (diff) | |
| download | bcm5719-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.cpp | 23 |
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. |

