Zebediah Figura z.figura12@gmail.com writes:
+__ASM_GLOBAL_FUNC( do_x86cpuid,
"pushl %esi\n\t"
"pushl %ebx\n\t"
"movl 4(%esp),%eax\n\t"
"movl 8(%esp),%esi\n\t"
"cpuid\n\t"
"movl %eax,(%esi)\n\t"
"movl %ebx,4(%esi)\n\t"
"movl %ecx,8(%esi)\n\t"
"movl %edx,12(%esi)\n\t"
"popl %ebx\n\t"
"popl %esi\n\t"
"ret" );
This cannot possibly work, the stack offsets are wrong.