aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2020-09-30 22:41:24 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2020-09-30 22:41:24 +0000
commit8604f4ae91aca75e4099e0da737c609419cd0d15 (patch)
tree11ba820c3e535307b8674bcf8ef5e09363fedf20
parentfd618e2e2108e49ac96a0df9d8df84ebe44cf40b (diff)
downloadsrc-8604f4ae91aca75e4099e0da737c609419cd0d15.tar.gz
src-8604f4ae91aca75e4099e0da737c609419cd0d15.zip
MFS r365996:
MFC r365304: arm64: update the set of HWCAP definitions MFC r365459: arm64: fix incorrect HWCAP definitions Approved by: re (gjb)
Notes
Notes: svn path=/releng/12.2/; revision=366301
-rw-r--r--sys/arm64/include/elf.h85
1 files changed, 57 insertions, 28 deletions
diff --git a/sys/arm64/include/elf.h b/sys/arm64/include/elf.h
index b1572784ff77..ceb42ea6c24f 100644
--- a/sys/arm64/include/elf.h
+++ b/sys/arm64/include/elf.h
@@ -115,33 +115,62 @@ __ElfType(Auxinfo);
#define ET_DYN_LOAD_ADDR 0x100000
/* HWCAP */
-
-#define HWCAP_FP 0x00000001
-#define HWCAP_ASIMD 0x00000002
-#define HWCAP_EVTSTRM 0x00000004
-#define HWCAP_AES 0x00000008
-#define HWCAP_PMULL 0x00000010
-#define HWCAP_SHA1 0x00000020
-#define HWCAP_SHA2 0x00000040
-#define HWCAP_CRC32 0x00000080
-#define HWCAP_ATOMICS 0x00000100
-#define HWCAP_FPHP 0x00000200
-#define HWCAP_CPUID 0x00000400
-#define HWCAP_ASIMDRDM 0x00000800
-#define HWCAP_JSCVT 0x00001000
-#define HWCAP_FCMA 0x00002000
-#define HWCAP_LRCPC 0x00004000
-#define HWCAP_DCPOP 0x00008000
-#define HWCAP_SHA3 0x00010000
-#define HWCAP_SM3 0x00020000
-#define HWCAP_SM4 0x00040000
-#define HWCAP_ASIMDDP 0x00080000
-#define HWCAP_SHA512 0x00100000
-#define HWCAP_SVE 0x00200000
-#define HWCAP_ASIMDFHM 0x00400000
-#define HWCAP_DIT 0x00800000
-#define HWCAP_USCAT 0x01000000
-#define HWCAP_ILRCPC 0x02000000
-#define HWCAP_FLAGM 0x04000000
+#define HWCAP_FP 0x00000001
+#define HWCAP_ASIMD 0x00000002
+#define HWCAP_EVTSTRM 0x00000004
+#define HWCAP_AES 0x00000008
+#define HWCAP_PMULL 0x00000010
+#define HWCAP_SHA1 0x00000020
+#define HWCAP_SHA2 0x00000040
+#define HWCAP_CRC32 0x00000080
+#define HWCAP_ATOMICS 0x00000100
+#define HWCAP_FPHP 0x00000200
+#define HWCAP_ASIMDHP 0x00000400
+/*
+ * XXX: The following bits (from CPUID to FLAGM) were originally incorrect,
+ * but later changed to match the Linux definitions. No compatibility code is
+ * provided, as the fix was expected to result in near-zero fallout.
+ */
+#define HWCAP_CPUID 0x00000800
+#define HWCAP_ASIMDRDM 0x00001000
+#define HWCAP_JSCVT 0x00002000
+#define HWCAP_FCMA 0x00004000
+#define HWCAP_LRCPC 0x00008000
+#define HWCAP_DCPOP 0x00010000
+#define HWCAP_SHA3 0x00020000
+#define HWCAP_SM3 0x00040000
+#define HWCAP_SM4 0x00080000
+#define HWCAP_ASIMDDP 0x00100000
+#define HWCAP_SHA512 0x00200000
+#define HWCAP_SVE 0x00400000
+#define HWCAP_ASIMDFHM 0x00800000
+#define HWCAP_DIT 0x01000000
+#define HWCAP_USCAT 0x02000000
+#define HWCAP_ILRCPC 0x04000000
+#define HWCAP_FLAGM 0x08000000
+#define HWCAP_SSBS 0x10000000
+#define HWCAP_SB 0x20000000
+#define HWCAP_PACA 0x40000000
+#define HWCAP_PACG 0x80000000
+
+/* HWCAP2 */
+#define HWCAP2_DCPODP 0x00000001
+#define HWCAP2_SVE2 0x00000002
+#define HWCAP2_SVEAES 0x00000004
+#define HWCAP2_SVEPMULL 0x00000008
+#define HWCAP2_SVEBITPERM 0x00000010
+#define HWCAP2_SVESHA3 0x00000020
+#define HWCAP2_SVESM4 0x00000040
+#define HWCAP2_FLAGM2 0x00000080
+#define HWCAP2_FRINT 0x00000100
+#define HWCAP2_SVEI8MM 0x00000200
+#define HWCAP2_SVEF32MM 0x00000400
+#define HWCAP2_SVEF64MM 0x00000800
+#define HWCAP2_SVEBF16 0x00001000
+#define HWCAP2_I8MM 0x00002000
+#define HWCAP2_BF16 0x00004000
+#define HWCAP2_DGH 0x00008000
+#define HWCAP2_RNG 0x00010000
+#define HWCAP2_BTI 0x00020000
#endif /* !_MACHINE_ELF_H_ */