summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorDavid Tweed <david.tweed@arm.com>2012-10-25 13:33:01 +0000
committerDavid Tweed <david.tweed@arm.com>2012-10-25 13:33:01 +0000
commit8f67653d2611dac4f5f5a705e7576933aae29876 (patch)
treefc11edb1050c7e827ec5892849605ef2985a76ab /clang/lib/Basic
parent5fc11b3554e7c742368e9a776018f3f9a71c0b70 (diff)
downloadbcm5719-llvm-8f67653d2611dac4f5f5a705e7576933aae29876.tar.gz
bcm5719-llvm-8f67653d2611dac4f5f5a705e7576933aae29876.zip
Modify the targets to set appropriate calling convention defaults and C variables when using a gnueabihf or aapcs-vfp target.
Tested by me and Wei-Ren Chen. llvm-svn: 166679
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index ba96185f72d..9b758d1c212 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3077,7 +3077,7 @@ public:
}
// FIXME: Override "preferred align" for double and long long.
- } else if (Name == "aapcs") {
+ } else if (Name == "aapcs" || Name == "aapcs-vfp") {
IsAAPCS = true;
// FIXME: Enumerated types are variable width in straight AAPCS.
} else if (Name == "aapcs-linux") {
@@ -3212,13 +3212,13 @@ public:
if ('5' <= CPUArch[0] && CPUArch[0] <= '7')
Builder.defineMacro("__THUMB_INTERWORK__");
- if (ABI == "aapcs" || ABI == "aapcs-linux") {
+ if (ABI == "aapcs" || ABI == "aapcs-linux" || ABI == "aapcs-vfp") {
// M-class CPUs on Darwin follow AAPCS, but not EABI.
if (!(getTriple().isOSDarwin() && CPUProfile == "M"))
Builder.defineMacro("__ARM_EABI__");
Builder.defineMacro("__ARM_PCS", "1");
- if (!SoftFloat && !SoftFloatABI)
+ if ((!SoftFloat && !SoftFloatABI) || ABI == "aapcs-vfp")
Builder.defineMacro("__ARM_PCS_VFP", "1");
}
OpenPOWER on IntegriCloud