diff options
Diffstat (limited to 'lib/Basic/Targets/ARM.h')
-rw-r--r-- | lib/Basic/Targets/ARM.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/Basic/Targets/ARM.h b/lib/Basic/Targets/ARM.h index 9c72c3387f7a..ce87a6265934 100644 --- a/lib/Basic/Targets/ARM.h +++ b/lib/Basic/Targets/ARM.h @@ -1,9 +1,8 @@ //===--- ARM.h - Declare ARM target feature support -------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // @@ -34,6 +33,11 @@ class LLVM_LIBRARY_VISIBILITY ARMTargetInfo : public TargetInfo { FPARMV8 = (1 << 4) }; + enum MVEMode { + MVE_INT = (1 << 0), + MVE_FP = (1 << 1) + }; + // Possible HWDiv features. enum HWDivMode { HWDivThumb = (1 << 0), HWDivARM = (1 << 1) }; @@ -57,6 +61,7 @@ class LLVM_LIBRARY_VISIBILITY ARMTargetInfo : public TargetInfo { unsigned ArchVersion; unsigned FPU : 5; + unsigned MVE : 2; unsigned IsAAPCS : 1; unsigned HWDiv : 2; @@ -101,6 +106,8 @@ class LLVM_LIBRARY_VISIBILITY ARMTargetInfo : public TargetInfo { bool isThumb() const; bool supportsThumb() const; bool supportsThumb2() const; + bool hasMVE() const; + bool hasMVEFloat() const; StringRef getCPUAttr() const; StringRef getCPUProfile() const; @@ -117,6 +124,12 @@ public: StringRef CPU, const std::vector<std::string> &FeaturesVec) const override; + bool isValidFeatureName(StringRef Feature) const override { + // We pass soft-float-abi in as a -target-feature, but the backend figures + // this out through other means. + return Feature != "soft-float-abi"; + } + bool handleTargetFeatures(std::vector<std::string> &Features, DiagnosticsEngine &Diags) override; |