forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Changes based on support routine added to the ABI document, see:
ARM-software/abi-aa#263 - Renamed get_runtime_vl to __arm_get_current_vg - Also return VG if currently in streaming-mode - Added static to get_aarch64_cpu_features - Added aarch64.h and included in sme-abi-init.c
- Loading branch information
1 parent
2baec75
commit 75c2ae9
Showing
3 changed files
with
110 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
//===-- cpu_model/aarch64.h --------------------------------------------- -===// | ||
// | ||
// 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 | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#include "cpu_model.h" | ||
|
||
#if !defined(__aarch64__) | ||
#error This file is intended only for aarch64-based targets | ||
#endif | ||
|
||
#if !defined(DISABLE_AARCH64_FMV) | ||
|
||
// CPUFeatures must correspond to the same AArch64 features in | ||
// AArch64TargetParser.h | ||
enum CPUFeatures { | ||
FEAT_RNG, | ||
FEAT_FLAGM, | ||
FEAT_FLAGM2, | ||
FEAT_FP16FML, | ||
FEAT_DOTPROD, | ||
FEAT_SM4, | ||
FEAT_RDM, | ||
FEAT_LSE, | ||
FEAT_FP, | ||
FEAT_SIMD, | ||
FEAT_CRC, | ||
FEAT_SHA1, | ||
FEAT_SHA2, | ||
FEAT_SHA3, | ||
FEAT_AES, | ||
FEAT_PMULL, | ||
FEAT_FP16, | ||
FEAT_DIT, | ||
FEAT_DPB, | ||
FEAT_DPB2, | ||
FEAT_JSCVT, | ||
FEAT_FCMA, | ||
FEAT_RCPC, | ||
FEAT_RCPC2, | ||
FEAT_FRINTTS, | ||
FEAT_DGH, | ||
FEAT_I8MM, | ||
FEAT_BF16, | ||
FEAT_EBF16, | ||
FEAT_RPRES, | ||
FEAT_SVE, | ||
FEAT_SVE_BF16, | ||
FEAT_SVE_EBF16, | ||
FEAT_SVE_I8MM, | ||
FEAT_SVE_F32MM, | ||
FEAT_SVE_F64MM, | ||
FEAT_SVE2, | ||
FEAT_SVE_AES, | ||
FEAT_SVE_PMULL128, | ||
FEAT_SVE_BITPERM, | ||
FEAT_SVE_SHA3, | ||
FEAT_SVE_SM4, | ||
FEAT_SME, | ||
FEAT_MEMTAG, | ||
FEAT_MEMTAG2, | ||
FEAT_MEMTAG3, | ||
FEAT_SB, | ||
FEAT_PREDRES, | ||
FEAT_SSBS, | ||
FEAT_SSBS2, | ||
FEAT_BTI, | ||
FEAT_LS64, | ||
FEAT_LS64_V, | ||
FEAT_LS64_ACCDATA, | ||
FEAT_WFXT, | ||
FEAT_SME_F64, | ||
FEAT_SME_I64, | ||
FEAT_SME2, | ||
FEAT_RCPC3, | ||
FEAT_MOPS, | ||
FEAT_MAX, | ||
FEAT_EXT = 62, // Reserved to indicate presence of additional features field | ||
// in __aarch64_cpu_features | ||
FEAT_INIT // Used as flag of features initialization completion | ||
}; | ||
|
||
long long get_features(void); | ||
|
||
void CONSTRUCTOR_ATTRIBUTE __init_cpu_features(void); | ||
|
||
#endif // !defined(DISABLE_AARCH64_FMV) |