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
}