static void host_cpuid(uint32_t function, uint32_t count,

                       uint32_t *eax, uint32_t *ebx,

                       uint32_t *ecx, uint32_t *edx)

{

#if defined(CONFIG_KVM)

    uint32_t vec[4];



#ifdef __x86_64__

    asm volatile("cpuid"

                 : "=a"(vec[0]), "=b"(vec[1]),

                   "=c"(vec[2]), "=d"(vec[3])

                 : "0"(function), "c"(count) : "cc");

#else

    asm volatile("pusha \n\t"

                 "cpuid \n\t"

                 "mov %%eax, 0(%1) \n\t"

                 "mov %%ebx, 4(%1) \n\t"

                 "mov %%ecx, 8(%1) \n\t"

                 "mov %%edx, 12(%1) \n\t"

                 "popa"

                 : : "a"(function), "c"(count), "S"(vec)

                 : "memory", "cc");

#endif



    if (eax)

	*eax = vec[0];

    if (ebx)

	*ebx = vec[1];

    if (ecx)

	*ecx = vec[2];

    if (edx)

	*edx = vec[3];

#endif

}

static void host_cpuid(uint32_t function, uint32_t count,

                       uint32_t *eax, uint32_t *ebx,

                       uint32_t *ecx, uint32_t *edx)

{

#if defined(CONFIG_KVM)

    uint32_t vec[4];



#ifdef __x86_64__

    asm volatile("cpuid"

                 : "=a"(vec[0]), "=b"(vec[1]),

                   "=c"(vec[2]), "=d"(vec[3])

                 : "0"(function), "c"(count) : "cc");

#else

    asm volatile("pusha \n\t"

                 "cpuid \n\t"

                 "mov %%eax, 0(%1) \n\t"

                 "mov %%ebx, 4(%1) \n\t"

                 "mov %%ecx, 8(%1) \n\t"

                 "mov %%edx, 12(%1) \n\t"

                 "popa"

                 : : "a"(function), "c"(count), "S"(vec)

                 : "memory", "cc");

#endif



    if (eax)

	*eax = vec[0];

    if (ebx)

	*ebx = vec[1];

    if (ecx)

	*ecx = vec[2];

    if (edx)

	*edx = vec[3];

#endif

}

                 "mov %%eax, 0(%1) \n\t"                  "mov %%ebx, 4(%1) \n\t"                  "mov %%ecx, 8(%1) \n\t"                  "mov %%edx, 12(%1) \n\t"
static void FUNC_0(uint32_t VAR_0, uint32_t VAR_1,

                       uint32_t *VAR_2, uint32_t *VAR_3,

                       uint32_t *VAR_4, uint32_t *VAR_5)

{

#if defined(CONFIG_KVM)

    uint32_t vec[4];



#ifdef __x86_64__

    asm volatile("cpuid"

                 : "=a"(vec[0]), "=b"(vec[1]),

                   "=c"(vec[2]), "=d"(vec[3])

                 : "0"(VAR_0), "c"(VAR_1) : "cc");

#else

    asm volatile("pusha \n\t"

                 "cpuid \n\t"

                 "mov %%VAR_2, 0(%1) \n\t"

                 "mov %%VAR_3, 4(%1) \n\t"

                 "mov %%VAR_4, 8(%1) \n\t"

                 "mov %%VAR_5, 12(%1) \n\t"

                 "popa"

                 : : "a"(VAR_0), "c"(VAR_1), "S"(vec)

                 : "memory", "cc");

#endif



    if (VAR_2)

	*VAR_2 = vec[0];

    if (VAR_3)

	*VAR_3 = vec[1];

    if (VAR_4)

	*VAR_4 = vec[2];

    if (VAR_5)

	*VAR_5 = vec[3];

#endif

}

static void FUNC_0(uint32_t VAR_0, uint32_t VAR_1,
uint32_t *VAR_2, uint32_t *VAR_3,
uint32_t *VAR_4, uint32_t *VAR_5)
{ #if defined(CONFIG_KVM)
uint32_t vec[4]; #ifdef __x86_64__
asm volatile("cpuid"
: "=a"(vec[0]), "=b"(vec[1]),
"=c"(vec[2]), "=d"(vec[3])
: "0"(VAR_0), "c"(VAR_1) : "cc"); #else
asm volatile("pusha \n\t"
"cpuid \n\t"
"mov %%VAR_2, 0(%1) \n\t"
"mov %%VAR_3, 4(%1) \n\t"
"mov %%VAR_4, 8(%1) \n\t"
"mov %%VAR_5, 12(%1) \n\t"
"popa"
: : "a"(VAR_0), "c"(VAR_1), "S"(vec)
: "memory", "cc"); #endif
if (VAR_2)
*VAR_2 = vec[0]; if (VAR_3)
*VAR_3 = vec[1]; if (VAR_4)
*VAR_4 = vec[2]; if (VAR_5)
*VAR_5 = vec[3]; #endif
}