MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / CPUID

Class CPUID

src/backend/cpu/device_manager.hpp:42–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40#define MAX_INTEL_TOP_LVL 4
41
42class CPUID {
43 uint32_t regs[4];
44
45 public:
46 explicit CPUID(unsigned funcId, unsigned subFuncId) {
47#ifdef _WIN32
48 __cpuidex((int*)regs, (int)funcId, (int)subFuncId);
49
50#else
51 asm volatile("cpuid"
52 : "=a"(regs[0]), "=b"(regs[1]), "=c"(regs[2]),
53 "=d"(regs[3])
54 : "a"(funcId), "c"(subFuncId));
55#endif
56 }
57
58 inline const uint32_t& EAX() const { return regs[0]; }
59 inline const uint32_t& EBX() const { return regs[1]; }
60 inline const uint32_t& ECX() const { return regs[2]; }
61 inline const uint32_t& EDX() const { return regs[3]; }
62};
63
64#endif
65

Callers 1

CPUInfoMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected