diff options
author | Artyom Skrobov <Artyom.Skrobov@arm.com> | 2015-09-21 13:19:25 +0000 |
---|---|---|
committer | Artyom Skrobov <Artyom.Skrobov@arm.com> | 2015-09-21 13:19:25 +0000 |
commit | 7428f1ef64d9842c6f695855190500f665d78db5 (patch) | |
tree | 25cb7fd4b5434f6c26c597049b4cb0cf4c63de51 /clang/lib/Basic/Targets.cpp | |
parent | 415af0184c577270d6c3507b195f89694c4905b6 (diff) | |
download | bcm5719-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.cpp | 10 |
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; } |