Blame src/libmpg123/testcpu.c
|
Packit |
c32a2d |
/*
|
|
Packit |
c32a2d |
testcpu: standalone CPU flags tester
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
copyright 2007 by the mpg123 project - free software under the terms of the LGPL 2.1
|
|
Packit |
c32a2d |
see COPYING and AUTHORS files in distribution or http://mpg123.org
|
|
Packit |
c32a2d |
initially written by Thomas Orgis
|
|
Packit |
c32a2d |
*/
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#include <stdio.h>
|
|
Packit |
c32a2d |
#include "getcpuflags.h"
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
int main()
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
int family;
|
|
Packit |
c32a2d |
struct cpuflags flags;
|
|
Packit |
c32a2d |
if(!getcpuflags(&flags)){ printf("CPU won't do cpuid (some old i386 or i486)\n"); return 0; }
|
|
Packit |
c32a2d |
family = (flags.id & 0xf00)>>8;
|
|
Packit |
c32a2d |
printf("family: %i\n", family);
|
|
Packit |
c32a2d |
printf("stdcpuflags: 0x%08x\n", flags.std);
|
|
Packit |
c32a2d |
printf("std2cpuflags: 0x%08x\n", flags.std2);
|
|
Packit |
c32a2d |
printf("extcpuflags: 0x%08x\n", flags.ext);
|
|
Packit |
c32a2d |
if(cpu_i586(flags))
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
printf("A i586 or better cpu with:");
|
|
Packit |
c32a2d |
if(cpu_mmx(flags)) printf(" mmx");
|
|
Packit |
c32a2d |
if(cpu_3dnow(flags)) printf(" 3dnow");
|
|
Packit |
c32a2d |
if(cpu_3dnowext(flags)) printf(" 3dnowext");
|
|
Packit |
c32a2d |
if(cpu_sse(flags)) printf(" sse");
|
|
Packit |
c32a2d |
if(cpu_sse2(flags)) printf(" sse2");
|
|
Packit |
c32a2d |
if(cpu_sse3(flags)) printf(" sse3");
|
|
Packit |
c32a2d |
printf("\n");
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
else printf("I guess you have some i486\n");
|
|
Packit |
c32a2d |
return 0;
|
|
Packit |
c32a2d |
}
|