diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-09-14 00:35:03 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-09-14 00:35:03 +0000 |
commit | b4091a9c6aa1356d4acc71b9af473ce21651d07a (patch) | |
tree | 65d72182f242c4ebe70dcce756c2e3d5174969d9 /clang/lib/Basic/Targets.cpp | |
parent | 4ed78982940592955c0927eba1e7b7de7df7b745 (diff) | |
download | bcm5719-llvm-b4091a9c6aa1356d4acc71b9af473ce21651d07a.tar.gz bcm5719-llvm-b4091a9c6aa1356d4acc71b9af473ce21651d07a.zip |
Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.
llvm-svn: 81735
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index c9a3deab289..eed9e2cc192 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -991,8 +991,13 @@ class ARMTargetInfo : public TargetInfo { Armv7a, XScale } ArmArch; + + std::string ABI; + public: - ARMTargetInfo(const std::string& triple) : TargetInfo(triple) { + ARMTargetInfo(const std::string& triple) + : TargetInfo(triple), ABI("aapcs-linux") + { // FIXME: Are the defaults correct for ARM? 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-" @@ -1016,7 +1021,10 @@ public: ArmArch = Armv6; } } + virtual const char *getABI() const { return ABI.c_str(); } virtual bool setABI(const std::string &Name) { + ABI = Name; + // The defaults (above) are for AAPCS, check if we need to change them. // // FIXME: We need support for -meabi... we could just mangle it into the |