# HG changeset patch # User Ryan C. Gordon # Date 1136449055 0 # Node ID 1430f5fe092a70b77fc6d18c1c41b88b928811c8 # Parent f4a3a4129d0459a17a19d6f7eb0fad67cdd06778 Patch from Michael Bonfils to add CPUID support for x86 Solaris. diff -r f4a3a4129d04 -r 1430f5fe092a src/cpuinfo/SDL_cpuinfo.c --- a/src/cpuinfo/SDL_cpuinfo.c Thu Jan 05 07:20:12 2006 +0000 +++ b/src/cpuinfo/SDL_cpuinfo.c Thu Jan 05 08:17:35 2006 +0000 @@ -116,6 +116,36 @@ mov has_CPUID,1 ; We have CPUID support done: } +#elif defined(__sun) && defined(__x86) + __asm ( +" pushfl \n" +" popl %eax \n" +" movl %eax,%ecx \n" +" xorl $0x200000,%eax \n" +" pushl %eax \n" +" popfl \n" +" pushfl \n" +" popl %eax \n" +" xorl %ecx,%eax \n" +" jz 1f \n" +" movl $1,-8(%ebp) \n" +"1: \n" + ); +#elif defined(__sun) && defined(__amd64) + __asm ( +" pushfq \n" +" popq %rax \n" +" movq %rax,%rcx \n" +" xorl $0x200000,%eax \n" +" pushq %rax \n" +" popfq \n" +" pushfq \n" +" popq %rax \n" +" xorl %ecx,%eax \n" +" jz 1f \n" +" movl $1,-8(%rbp) \n" +"1: \n" + ); #endif return has_CPUID; } @@ -152,6 +182,23 @@ mov features, edx done: } +#elif defined(__sun) && (defined(__x86) || defined(__amd64)) + __asm( +" movl %ebx,%edi\n" +" xorl %eax,%eax \n" +" cpuid \n" +" cmpl $1,%eax \n" +" jl 1f \n" +" xorl %eax,%eax \n" +" incl %eax \n" +" cpuid \n" +#ifdef __i386 +" movl %edx,-8(%ebp) \n" +#else +" movl %edx,-8(%rbp) \n" +#endif +"1: \n" +" movl %edi,%ebx\n" ); #endif return features; } @@ -186,6 +233,23 @@ mov features,edx done: } +#elif defined(__sun) && ( defined(__i386) || defined(__amd64) ) + __asm ( +" movl %ebx,%edi\n" +" movl $0x80000000,%eax \n" +" cpuid \n" +" cmpl $0x80000001,%eax \n" +" jl 1f \n" +" movl $0x80000001,%eax \n" +" cpuid \n" +#ifdef __i386 +" movl %edx,-8(%ebp) \n" +#else +" movl %edx,-8(%rbp) \n" +#endif +"1: \n" +" movl %edi,%ebx\n" + ); #endif return features; }