diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.h')
-rw-r--r-- | contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.h b/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.h index 8e7c10ecd5d6..fa62ac89e3a1 100644 --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.h +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.h @@ -11,9 +11,10 @@ #include "clang/Driver/ToolChain.h" #include "llvm/ADT/StringRef.h" -#include "llvm/ADT/Triple.h" +#include "llvm/Option/ArgList.h" #include "llvm/Option/Option.h" -#include "llvm/Support/TargetParser.h" +#include "llvm/TargetParser/ARMTargetParser.h" +#include "llvm/TargetParser/Triple.h" #include <string> #include <vector> @@ -24,7 +25,7 @@ namespace arm { std::string getARMTargetCPU(StringRef CPU, llvm::StringRef Arch, const llvm::Triple &Triple); -const std::string getARMArch(llvm::StringRef Arch, const llvm::Triple &Triple); +std::string getARMArch(llvm::StringRef Arch, const llvm::Triple &Triple); StringRef getARMCPUForMArch(llvm::StringRef Arch, const llvm::Triple &Triple); llvm::ARM::ArchKind getLLVMArchKindForARM(StringRef CPU, StringRef Arch, const llvm::Triple &Triple); @@ -37,7 +38,9 @@ void appendBE8LinkFlag(const llvm::opt::ArgList &Args, enum class ReadTPMode { Invalid, Soft, - Cp15, + TPIDRURW, + TPIDRURO, + TPIDRPRW, }; enum class FloatABI { @@ -53,7 +56,9 @@ FloatABI getARMFloatABI(const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args); void setFloatABIInTriple(const Driver &D, const llvm::opt::ArgList &Args, llvm::Triple &triple); -ReadTPMode getReadTPMode(const Driver &D, const llvm::opt::ArgList &Args); +bool isHardTPSupported(const llvm::Triple &Triple); +ReadTPMode getReadTPMode(const Driver &D, const llvm::opt::ArgList &Args, + const llvm::Triple &Triple, bool ForAS); void setArchNameInTriple(const Driver &D, const llvm::opt::ArgList &Args, types::ID InputType, llvm::Triple &Triple); @@ -61,13 +66,15 @@ bool useAAPCSForMachO(const llvm::Triple &T); void getARMArchCPUFromArgs(const llvm::opt::ArgList &Args, llvm::StringRef &Arch, llvm::StringRef &CPU, bool FromAs = false); -void getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple, - const llvm::opt::ArgList &Args, - llvm::opt::ArgStringList &CmdArgs, - std::vector<llvm::StringRef> &Features, bool ForAS); +llvm::ARM::FPUKind getARMTargetFeatures(const Driver &D, + const llvm::Triple &Triple, + const llvm::opt::ArgList &Args, + std::vector<llvm::StringRef> &Features, + bool ForAS, bool ForMultilib = false); int getARMSubArchVersionNumber(const llvm::Triple &Triple); bool isARMMProfile(const llvm::Triple &Triple); bool isARMAProfile(const llvm::Triple &Triple); +bool isARMBigEndian(const llvm::Triple &Triple, const llvm::opt::ArgList &Args); } // end namespace arm } // end namespace tools |