1 // AT_SUN_HWCAP
2 pub const AV_386_FPU: u32 = 0x00001;
3 pub const AV_386_TSC: u32 = 0x00002;
4 pub const AV_386_CX8: u32 = 0x00004;
5 pub const AV_386_SEP: u32 = 0x00008;
6 pub const AV_386_AMD_SYSC: u32 = 0x00010;
7 pub const AV_386_CMOV: u32 = 0x00020;
8 pub const AV_386_MMX: u32 = 0x00040;
9 pub const AV_386_AMD_MMX: u32 = 0x00080;
10 pub const AV_386_AMD_3DNow: u32 = 0x00100;
11 pub const AV_386_AMD_3DNowx: u32 = 0x00200;
12 pub const AV_386_FXSR: u32 = 0x00400;
13 pub const AV_386_SSE: u32 = 0x00800;
14 pub const AV_386_SSE2: u32 = 0x01000;
15 pub const AV_386_CX16: u32 = 0x10000;
16 pub const AV_386_AHF: u32 = 0x20000;
17 pub const AV_386_TSCP: u32 = 0x40000;
18 pub const AV_386_AMD_SSE4A: u32 = 0x80000;
19 pub const AV_386_POPCNT: u32 = 0x100000;
20 pub const AV_386_AMD_LZCNT: u32 = 0x200000;
21 pub const AV_386_SSSE3: u32 = 0x400000;
22 pub const AV_386_SSE4_1: u32 = 0x800000;
23 pub const AV_386_SSE4_2: u32 = 0x1000000;
24 pub const AV_386_MOVBE: u32 = 0x2000000;
25 pub const AV_386_AES: u32 = 0x4000000;
26 pub const AV_386_PCLMULQDQ: u32 = 0x8000000;
27 pub const AV_386_XSAVE: u32 = 0x10000000;
28 pub const AV_386_AVX: u32 = 0x20000000;
29 cfg_if! {
30     if #[cfg(target_os = "illumos")] {
31         pub const AV_386_VMX: u32 = 0x40000000;
32         pub const AV_386_AMD_SVM: u32 = 0x80000000;
33         // AT_SUN_HWCAP2
34         pub const AV_386_2_F16C: u32 = 0x00000001;
35         pub const AV_386_2_RDRAND: u32 = 0x00000002;
36         pub const AV_386_2_BMI1: u32 = 0x00000004;
37         pub const AV_386_2_BMI2: u32 = 0x00000008;
38         pub const AV_386_2_FMA: u32 = 0x00000010;
39         pub const AV_386_2_AVX2: u32 = 0x00000020;
40         pub const AV_386_2_ADX: u32 = 0x00000040;
41         pub const AV_386_2_RDSEED: u32 = 0x00000080;
42         pub const AV_386_2_AVX512F: u32 = 0x00000100;
43         pub const AV_386_2_AVX512DQ: u32 = 0x00000200;
44         pub const AV_386_2_AVX512IFMA: u32 = 0x00000400;
45         pub const AV_386_2_AVX512PF: u32 = 0x00000800;
46         pub const AV_386_2_AVX512ER: u32 = 0x00001000;
47         pub const AV_386_2_AVX512CD: u32 = 0x00002000;
48         pub const AV_386_2_AVX512BW: u32 = 0x00004000;
49         pub const AV_386_2_AVX512VL: u32 = 0x00008000;
50         pub const AV_386_2_AVX512VBMI: u32 = 0x00010000;
51         pub const AV_386_2_AVX512VPOPCDQ: u32 = 0x00020000;
52         pub const AV_386_2_AVX512_4NNIW: u32 = 0x00040000;
53         pub const AV_386_2_AVX512_4FMAPS: u32 = 0x00080000;
54         pub const AV_386_2_SHA: u32 = 0x00100000;
55         pub const AV_386_2_FSGSBASE: u32 = 0x00200000;
56         pub const AV_386_2_CLFLUSHOPT: u32 = 0x00400000;
57         pub const AV_386_2_CLWB: u32 = 0x00800000;
58         pub const AV_386_2_MONITORX: u32 = 0x01000000;
59         pub const AV_386_2_CLZERO: u32 = 0x02000000;
60         pub const AV_386_2_AVX512_VNNI: u32 = 0x04000000;
61         pub const AV_386_2_VPCLMULQDQ: u32 = 0x08000000;
62         pub const AV_386_2_VAES: u32 = 0x10000000;
63         // AT_SUN_FPTYPE
64         pub const AT_386_FPINFO_NONE: u32 = 0;
65         pub const AT_386_FPINFO_FXSAVE: u32 = 1;
66         pub const AT_386_FPINFO_XSAVE: u32 = 2;
67         pub const AT_386_FPINFO_XSAVE_AMD: u32 = 3;
68     }
69 }
70