--- jcpuid/src/jcpuid.c 2008-10-06 09:44:53.000000000 -0400 +++ jcpuid/src/jcpuid.c.new2 2010-12-27 09:41:53.000000000 -0500 @@ -19,6 +19,7 @@ mov d, edx } #else + #ifdef _LP64 //Use GCC assembler notation asm ( @@ -29,6 +30,20 @@ "=d"(d) :"a"(iFunction) ); + #else + asm + ( + "pushl %%ebx\n\t" + "cpuid\n\t" + "movl %%ebx, %%edi\n\t" + "popl %%ebx" + : "=a" (a), + "=D" (b), + "=c" (c), + "=d" (d) + :"a"(iFunction) + ); + #endif #endif return (*env)->NewObject(env, clsResult,constructor,a,b,c,d); }