summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorArtyom Skrobov <Artyom.Skrobov@arm.com>2015-09-21 13:19:25 +0000
committerArtyom Skrobov <Artyom.Skrobov@arm.com>2015-09-21 13:19:25 +0000
commit7428f1ef64d9842c6f695855190500f665d78db5 (patch)
tree25cb7fd4b5434f6c26c597049b4cb0cf4c63de51 /clang/lib/Basic/Targets.cpp
parent415af0184c577270d6c3507b195f89694c4905b6 (diff)
downloadbcm5719-llvm-7428f1ef64d9842c6f695855190500f665d78db5.tar.gz
bcm5719-llvm-7428f1ef64d9842c6f695855190500f665d78db5.zip
[ARM] Handle +t2dsp feature as an ArchExtKind in ARMTargetParser.def
Currently, the availability of DSP instructions (ACLE 6.4.7) is handled in a hand-rolled tricky condition block in lib/Basic/Targets.cpp, with a FIXME: attached. http://reviews.llvm.org/D12937 moved the handling of +t2dsp over to ARMTargetParser.def in LLVM, to be in line with other architecture extensions. This is the corresponding patch to clang, to clear the FIXME: and update the tests. Differential Revision: http://reviews.llvm.org/D12938 llvm-svn: 248154
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r--clang/lib/Basic/Targets.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 2269c83d496..148d07e5c3b 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -4121,6 +4121,7 @@ class ARMTargetInfo : public TargetInfo {
unsigned CRC : 1;
unsigned Crypto : 1;
+ unsigned T2DSP : 1;
unsigned Unaligned : 1;
enum {
@@ -4472,6 +4473,7 @@ public:
FPU = 0;
CRC = 0;
Crypto = 0;
+ T2DSP = 0;
Unaligned = 1;
SoftFloat = SoftFloatABI = false;
HWDiv = 0;
@@ -4507,6 +4509,8 @@ public:
CRC = 1;
} else if (Feature == "+crypto") {
Crypto = 1;
+ } else if (Feature == "+t2dsp") {
+ T2DSP = 1;
} else if (Feature == "+fp-only-sp") {
HW_FP_remove |= HW_FP_DP | HW_FP_HP;
} else if (Feature == "+strict-align") {
@@ -4743,11 +4747,7 @@ public:
// ACLE 6.4.7 DSP instructions
bool hasDSP = false;
- bool is5EOrAbove = (ArchVersion >= 6 ||
- (ArchVersion == 5 && CPUAttr.count('E')));
- // FIXME: We are not getting all 32-bit ARM architectures
- bool is32Bit = (!isThumb() || supportsThumb2());
- if (is5EOrAbove && is32Bit && (CPUProfile != "M" || CPUAttr == "7EM")) {
+ if (T2DSP) {
Builder.defineMacro("__ARM_FEATURE_DSP", "1");
hasDSP = true;
}
OpenPOWER on IntegriCloud