unsigned int *edx,
struct x86_emulate_ctxt *ctxt)
{
asm ("cpuid" : "+a" (*eax), "+c" (*ecx), "=d" (*edx), "=b" (*ebx));
asm ("pushl %%ebx \n\t"
"cpuid \n\t"
"movl %%ebx, %3 \n\t"
"popl %%ebx" : "+a" (*eax), "+c" (*ecx), "=d" (*edx), "=r" (*ebx));
return X86EMUL_OKAY;
}