summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-14 00:35:03 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-14 00:35:03 +0000
commitb4091a9c6aa1356d4acc71b9af473ce21651d07a (patch)
tree65d72182f242c4ebe70dcce756c2e3d5174969d9 /clang/lib/Basic/Targets.cpp
parent4ed78982940592955c0927eba1e7b7de7df7b745 (diff)
downloadbcm5719-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.cpp10
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
OpenPOWER on IntegriCloud