Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Enumerations | Functions | Variables
cpu_info_ia32.cpp File Reference
#include "level_base.H"

Enumerations

enum  CPU_FEATURE {
  CPU_FEATURE_FIRST = 0,
  CPU_FEATURE_SSE = CPU_FEATURE_FIRST,
  CPU_FEATURE_SSE2,
  CPU_FEATURE_SSE3,
  CPU_FEATURE_EST,
  CPU_FEATURE_PBE,
  CPU_FEATURE_FXSR,
  CPU_FEATURE_CX8,
  CPU_FEATURE_CMOV,
  CPU_FEATURE_LAHF_SAHF,
  CPU_FEATURE_AVX,
  CPU_FEATURE_AVX2,
  CPU_FEATURE_LAST = CPU_FEATURE_AVX2
}
 
enum  CPU_XFEATURE_BIT {
  CPU_XFEATURE_BIT_X87 = (1 << 0),
  CPU_XFEATURE_BIT_SSE = (1 << 1),
  CPU_XFEATURE_BIT_AVX = (1 << 2)
}
 

Functions

LOCALVAR KNOB< BOOL > LEVEL_BASE::KnobAllowAvxSupport (KNOB_MODE_WRITEONCE,"supported","allow_AVX_support","1","allow AVX suport")
 
CPU_INFO & LEVEL_BASE::Cpu ()
 
LOCALVAR KNOB< BOOL > LEVEL_BASE::KnobNoCmov (KNOB_MODE_WRITEONCE,"supported","nocmov","0","disable the use of CMOV even on machines which support it")
 
BOOL LEVEL_BASE::CanUseCMOV ()
 
BOOL LEVEL_BASE::CpuSupportsLahfSahf ()
 
GLOBALCFUN ADDRINT LEVEL_BASE::HaveAvxSupport ()
 
GLOBALCFUN ADDRINT LEVEL_BASE::HaveAvx2Support ()
 

Variables

LOCALVAR BOOL LEVEL_BASE::cpuSupportsCMOV = Cpu().Supports(CPU_FEATURE_CMOV)
 
LOCALVAR BOOL LEVEL_BASE::cpuSupportsLahfSahf = Cpu().Supports(CPU_FEATURE_LAHF_SAHF)
 
LOCALVAR BOOL LEVEL_BASE::cpuSupportsAVX = Cpu().Supports(CPU_FEATURE_AVX)
 
LOCALVAR BOOL LEVEL_BASE::cpuSupportsAVX2 = Cpu().Supports(CPU_FEATURE_AVX2)
 

Detailed Description

Interface for querying the ia32/intel64 CPU features