Pyrogenesis  trunk
Classes | Namespaces | Enumerations | Functions
x86_x64.h File Reference
#include "lib/lib_api.h"
Include dependency graph for x86_x64.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  x86_x64::CpuidRegs
 registers used/returned by cpuid More...
 

Namespaces

 x86_x64
 

Enumerations

enum  x86_x64::Vendors { x86_x64::VENDOR_UNKNOWN, x86_x64::VENDOR_INTEL, x86_x64::VENDOR_AMD }
 CPU vendor. More...
 
enum  x86_x64::Models {
  x86_x64::MODEL_NEHALEM_EP = 0x1A, x86_x64::MODEL_NEHALEM_EP_2 = 0x1E, x86_x64::MODEL_I7_I5 = 0x1F, x86_x64::MODEL_CLARKDALE = 0x25,
  x86_x64::MODEL_WESTMERE_EP = 0x2C, x86_x64::MODEL_NEHALEM_EX = 0x2E, x86_x64::MODEL_WESTMERE_EX = 0x2F, x86_x64::MODEL_SANDY_BRIDGE = 0x2A,
  x86_x64::MODEL_SANDY_BRIDGE_2 = 0x2D
}
 
enum  x86_x64::Caps {
  x86_x64::CAP_SSE3 = 0+0, x86_x64::CAP_EST = 0+7, x86_x64::CAP_SSSE3 = 0+9, x86_x64::CAP_SSE41 = 0+19,
  x86_x64::CAP_SSE42 = 0+20, x86_x64::CAP_FPU = 32+0, x86_x64::CAP_TSC = 32+4, x86_x64::CAP_MSR = 32+5,
  x86_x64::CAP_CMOV = 32+15, x86_x64::CAP_TM_SCC = 32+22, x86_x64::CAP_MMX = 32+23, x86_x64::CAP_SSE = 32+25,
  x86_x64::CAP_SSE2 = 32+26, x86_x64::CAP_HT = 32+28, x86_x64::CAP_AMD_CMP_LEGACY = 64+1, x86_x64::CAP_AMD_MP = 96+19,
  x86_x64::CAP_AMD_MMX_EXT = 96+22, x86_x64::CAP_AMD_3DNOW_PRO = 96+30, x86_x64::CAP_AMD_3DNOW = 96+31
}
 bit indices of CPU capability flags (128 bits). More...
 

Functions

bool x86_x64::cpuid (CpuidRegs *regs)
 invoke CPUID instruction. More...
 
Vendors x86_x64::Vendor ()
 
size_t x86_x64::Model ()
 
size_t x86_x64::Family ()
 
LIB_API size_t x86_x64::Generation ()
 
bool x86_x64::Cap (Caps cap)
 
void x86_x64::GetCapBits (u32 *d0, u32 *d1, u32 *d2, u32 *d3)
 
u64 x86_x64::rdtsc ()
 
void x86_x64::DebugBreak ()
 trigger a breakpoint inside this function when it is called. More...
 
double x86_x64::ClockFrequency ()
 measure the CPU clock frequency via rdtsc and timer_Time. More...