summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorSirish Pande <spande@codeaurora.org>2012-04-16 17:04:05 +0000
committerSirish Pande <spande@codeaurora.org>2012-04-16 17:04:05 +0000
commitf02eebef2ae83bf18ef9cfa183b084fd78553d65 (patch)
treecb001626cafa20099f5a00e679f1e8298c79d41a /clang/lib/Basic/Targets.cpp
parent0a487a7e14c476ca21794bc0dbffc890350aa83a (diff)
downloadbcm5719-llvm-f02eebef2ae83bf18ef9cfa183b084fd78553d65.tar.gz
bcm5719-llvm-f02eebef2ae83bf18ef9cfa183b084fd78553d65.zip
Hexagon V5(Floating Point) support.
llvm-svn: 154828
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ad37c4e572..5856d1ddfc6 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3015,8 +3015,8 @@ public:
HexagonTargetInfo(const std::string& triple) : TargetInfo(triple) {
BigEndian = false;
DescriptionString = ("e-p:32:32:32-"
- "i64:64:64-i32:32:32-"
- "i16:16:16-i1:32:32-a:0:0");
+ "i64:64:64-i32:32:32-i16:16:16-i1:32:32"
+ "f64:64:64-f32:32:32-a0:0-n32");
// {} in inline assembly are packet specifiers, not assembly variant
// specifiers.
@@ -3057,6 +3057,7 @@ public:
.Case("hexagonv2", "2")
.Case("hexagonv3", "3")
.Case("hexagonv4", "4")
+ .Case("hexagonv5", "5")
.Default(0);
}
@@ -3111,6 +3112,14 @@ void HexagonTargetInfo::getTargetDefines(const LangOptions &Opts,
Builder.defineMacro("__QDSP6_ARCH__", "4");
}
}
+ else if(CPU == "hexagonv5") {
+ Builder.defineMacro("__HEXAGON_V5__");
+ Builder.defineMacro("__HEXAGON_ARCH__", "5");
+ if(Opts.HexagonQdsp6Compat) {
+ Builder.defineMacro("__QDSP6_V5__");
+ Builder.defineMacro("__QDSP6_ARCH__", "5");
+ }
+ }
}
const char * const HexagonTargetInfo::GCCRegNames[] = {
OpenPOWER on IntegriCloud