|
|
|||
File indexing completed on 2026-05-10 08:44:36
0001 //===---------------- ARMTargetParserCommon ---------------------*- C++ -*-===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 // 0009 // Code that is common to ARMTargetParser and AArch64TargetParser. 0010 // 0011 //===----------------------------------------------------------------------===// 0012 0013 #ifndef LLVM_TARGETPARSER_ARMTARGETPARSERCOMMON_H 0014 #define LLVM_TARGETPARSER_ARMTARGETPARSERCOMMON_H 0015 0016 #include "llvm/ADT/StringRef.h" 0017 0018 namespace llvm { 0019 namespace ARM { 0020 0021 enum class ISAKind { INVALID = 0, ARM, THUMB, AARCH64 }; 0022 0023 enum class EndianKind { INVALID = 0, LITTLE, BIG }; 0024 0025 /// Converts e.g. "armv8" -> "armv8-a" 0026 StringRef getArchSynonym(StringRef Arch); 0027 0028 /// MArch is expected to be of the form (arm|thumb)?(eb)?(v.+)?(eb)?, but 0029 /// (iwmmxt|xscale)(eb)? is also permitted. If the former, return 0030 /// "v.+", if the latter, return unmodified string, minus 'eb'. 0031 /// If invalid, return empty string. 0032 StringRef getCanonicalArchName(StringRef Arch); 0033 0034 // ARM, Thumb, AArch64 0035 ISAKind parseArchISA(StringRef Arch); 0036 0037 // Little/Big endian 0038 EndianKind parseArchEndian(StringRef Arch); 0039 0040 struct ParsedBranchProtection { 0041 StringRef Scope; 0042 StringRef Key; 0043 bool BranchTargetEnforcement; 0044 bool BranchProtectionPAuthLR; 0045 bool GuardedControlStack; 0046 }; 0047 0048 bool parseBranchProtection(StringRef Spec, ParsedBranchProtection &PBP, 0049 StringRef &Err, bool EnablePAuthLR = false); 0050 0051 } // namespace ARM 0052 } // namespace llvm 0053 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|