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 | 018ba5ab0671d9b6eefecaffc118c869bea151a1 (patch) | |
tree | 771f355acb2b806090d8c4a8a72b6df4bc5d2d53 /lib/Basic/Targets.cpp | |
parent | 2030d8f46b4226fa99e59389e3ca856a79c27e9a (diff) |
Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81735 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r-- | lib/Basic/Targets.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index c9a3deab28..eed9e2cc19 100644 --- a/lib/Basic/Targets.cpp +++ b/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 |