X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FAArch64%2FAArch64Subtarget.h;h=adceba7842dc133313af361bec9ad379cb3e2c8f;hb=f4ec8bfaecef4e38f713b9e05d89869b023e1ce8;hp=f262b9461797b4da5235a0003a99351173b1e5f6;hpb=d29bae8bc9b393a24c7f3a1812b88763505eda11;p=oota-llvm.git diff --git a/lib/Target/AArch64/AArch64Subtarget.h b/lib/Target/AArch64/AArch64Subtarget.h index f262b946179..adceba7842d 100644 --- a/lib/Target/AArch64/AArch64Subtarget.h +++ b/lib/Target/AArch64/AArch64Subtarget.h @@ -27,17 +27,30 @@ class StringRef; class GlobalValue; class AArch64Subtarget : public AArch64GenSubtargetInfo { + virtual void anchor(); 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; + + /// IsLittleEndian - The target is Little Endian + bool IsLittleEndian; + +private: + void initializeSubtargetFeatures(StringRef CPU, StringRef FS); + public: /// This constructor initializes the data members to match that /// of the specified triple. /// - AArch64Subtarget(StringRef TT, StringRef CPU, StringRef FS); + AArch64Subtarget(StringRef TT, StringRef CPU, StringRef FS, + bool LittleEndian); virtual bool enableMachineScheduler() const { return true; @@ -52,9 +65,13 @@ 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; } + + bool isLittle() const { return IsLittleEndian; } + + const std::string & getCPUString() const { return CPUString; } }; } // End llvm namespace