AuroraRuntime/Include/Aurora/HWInfo/CpuId.hpp

87 lines
2.0 KiB
C++

/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.hpp
Date: 2022-1-24
Author: Reece
***/
#pragma once
namespace Aurora::HWInfo
{
struct AUKN_SYM CpuId
{
AU_COPY_MOVE_DEF(CpuId);
bool SSE3() const;
bool PCLMULQDQ() const;
bool MONITOR() const;
bool SSSE3() const;
bool FMA() const;
bool CMPXCHG16B() const;
bool SSE41() const;
bool SSE42() const;
bool MOVBE() const;
bool POPCNT() const;
bool AES() const;
bool XSAVE() const;
bool OSXSAVE() const;
bool AVX() const;
bool F16C() const;
bool RDRAND() const;
bool MSR() const;
bool CX8() const;
bool SEP() const;
bool CMOV() const;
bool CLFSH() const;
bool MMX() const;
bool FXSR() const;
bool SSE() const;
bool SSE2() const;
bool FSGSBASE() const;
bool BMI1() const;
bool HLE() const;
bool AVX2() const;
bool BMI2() const;
bool ERMS() const;
bool INVPCID() const;
bool RTM() const;
bool AVX512F() const;
bool RDSEED() const;
bool ADX() const;
bool AVX512PF() const;
bool AVX512ER() const;
bool AVX512CD() const;
bool SHA() const;
bool PREFETCHWT1() const;
bool LAHF() const;
bool LZCNT() const;
bool ABM() const;
bool SSE4a() const;
bool XOP() const;
bool TBM() const;
bool SYSCALL() const;
bool MMXEXT() const;
bool RDTSCP() const;
bool _3DNOWEXT() const;
bool _3DNOW() const;
AuString ToString() const;
AuString vendor;
AuString brand;
bool isIntel;
bool isAMD;
AuUInt32 f_1_ECX;
AuUInt32 f_1_EDX;
AuUInt32 f_7_EBX;
AuUInt32 f_7_ECX;
AuUInt32 f_81_ECX;
AuUInt32 f_81_EDX;
};
}