fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf
fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { // valid for both x86 and x86_64 var eax: u32 = undefined; var ebx: u32 = undefined; var ecx: u32 = undefined; var edx: u32 = undefined; if (builtin.zig_backend == .stage2_c) { zig_x86_cpuid(leaf_id, subid, &eax, &ebx, &ecx, &edx); } else { asm volatile ("cpuid" : [_] "={eax}" (eax), [_] "={ebx}" (ebx), [_] "={ecx}" (ecx), [_] "={edx}" (edx), : [_] "{eax}" (leaf_id), [_] "{ecx}" (subid), ); } return .{ .eax = eax, .ebx = ebx, .ecx = ecx, .edx = edx }; }