123456789101112131415161718192021222324252627282930313233 |
- package sys_cpu
- Cache_Line_Pad :: struct {_: [_cache_line_size]byte};
- initialized: bool;
- x86: struct {
- _: Cache_Line_Pad,
- has_aes: bool, // AES hardware implementation (AES NI)
- has_adx: bool, // Multi-precision add-carry instruction extensions
- has_avx: bool, // Advanced vector extension
- has_avx2: bool, // Advanced vector extension 2
- has_bmi1: bool, // Bit manipulation instruction set 1
- has_bmi2: bool, // Bit manipulation instruction set 2
- has_erms: bool, // Enhanced REP for MOVSB and STOSB
- has_fma: bool, // Fused-multiply-add instructions
- has_os_xsave: bool, // OS supports XSAVE/XRESTOR for saving/restoring XMM registers.
- has_pclmulqdq: bool, // PCLMULQDQ instruction - most often used for AES-GCM
- has_popcnt: bool, // Hamming weight instruction POPCNT.
- has_rdrand: bool, // RDRAND instruction (on-chip random number generator)
- has_rdseed: bool, // RDSEED instruction (on-chip random number generator)
- has_sse2: bool, // Streaming SIMD extension 2 (always available on amd64)
- has_sse3: bool, // Streaming SIMD extension 3
- has_ssse3: bool, // Supplemental streaming SIMD extension 3
- has_sse41: bool, // Streaming SIMD extension 4 and 4.1
- has_sse42: bool, // Streaming SIMD extension 4 and 4.2
- _: Cache_Line_Pad,
- };
- init :: proc() {
- _init();
- }
|