summaryrefslogtreecommitdiff
path: root/lib/Target/AArch64/AArch64Subtarget.h
diff options
context:
space:
mode:
authorAmara Emerson <amara.emerson@arm.com>2013-10-31 09:32:11 +0000
committerAmara Emerson <amara.emerson@arm.com>2013-10-31 09:32:11 +0000
commitc2884320feebc543d2ce51151d5418dfc18da9e4 (patch)
tree0741cd0182a73f25f8f852c90a8b7751323dc4ef /lib/Target/AArch64/AArch64Subtarget.h
parent0f5e68e3dc64e7dde41577649ad44b4453859276 (diff)
downloadllvm-c2884320feebc543d2ce51151d5418dfc18da9e4.tar.gz
llvm-c2884320feebc543d2ce51151d5418dfc18da9e4.tar.bz2
llvm-c2884320feebc543d2ce51151d5418dfc18da9e4.tar.xz
[AArch64] Make the use of FP instructions optional, but enabled by default.
This adds a new subtarget feature called FPARMv8 (implied by NEON), and predicates the support of the FP instructions and registers on this feature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193739 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64/AArch64Subtarget.h')
-rw-r--r--lib/Target/AArch64/AArch64Subtarget.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/Target/AArch64/AArch64Subtarget.h b/lib/Target/AArch64/AArch64Subtarget.h
index f262b94617..57eb187c9d 100644
--- a/lib/Target/AArch64/AArch64Subtarget.h
+++ b/lib/Target/AArch64/AArch64Subtarget.h
@@ -28,11 +28,19 @@ class GlobalValue;
class AArch64Subtarget : public AArch64GenSubtargetInfo {
protected:
+ bool HasFPARMv8;
bool HasNEON;
bool HasCrypto;
/// TargetTriple - What processor and OS we're targeting.
Triple TargetTriple;
+
+ /// CPUString - String name of used CPU.
+ std::string CPUString;
+
+private:
+ void initializeSubtargetFeatures(StringRef CPU, StringRef FS);
+
public:
/// This constructor initializes the data members to match that
/// of the specified triple.
@@ -52,9 +60,11 @@ public:
bool isTargetELF() const { return TargetTriple.isOSBinFormatELF(); }
bool isTargetLinux() const { return TargetTriple.isOSLinux(); }
+ bool hasFPARMv8() const { return HasFPARMv8; }
bool hasNEON() const { return HasNEON; }
-
bool hasCrypto() const { return HasCrypto; }
+
+ const std::string & getCPUString() const { return CPUString; }
};
} // End llvm namespace