if (cpu_feature && (cpu_feature & 0x10) >> 4) {
if (cpu_feature && (cpu_feature & CPUID_TSC)) {
identifycpu(){	extern char cpu_vendor[];	extern int cpu_id;#if defined(I586_CPU) || defined(I686_CPU)	extern int cpu_feature;#endif	const char *name, *modifier, *vendorname, *token;	const char *cpu_device = "cpu0";	int class = CPUCLASS_386, vendor, i, max;	int family, model, step, modif;	struct cpu_cpuid_nameclass *cpup = NULL;	void (*cpu_setup) __P((const char *));	if (cpuid_level == -1) {#ifdef DIAGNOSTIC		if (cpu < 0 || cpu >=		    (sizeof i386_nocpuid_cpus/sizeof(struct cpu_nocpuid_nameclass)))			panic("unknown cpu type %d\n", cpu);#endif		name = i386_nocpuid_cpus[cpu].cpu_name;		vendor = i386_nocpuid_cpus[cpu].cpu_vendor;		vendorname = i386_nocpuid_cpus[cpu].cpu_vendorname;		class = i386_nocpuid_cpus[cpu].cpu_class;		cpu_setup = i386_nocpuid_cpus[cpu].cpu_setup;		modifier = "";		token = "";	} else {		max = sizeof (i386_cpuid_cpus) / sizeof (i386_cpuid_cpus[0]);		modif = (cpu_id >> 12) & 3;		family = (cpu_id >> 8) & 15;		if (family < CPU_MINFAMILY)			panic("identifycpu: strange family value");		model = (cpu_id >> 4) & 15;		step = cpu_id & 15;#ifdef CPUDEBUG		printf("%s: family %x model %x step %x\n", cpu_device, family,			model, step);#endif		for (i = 0; i < max; i++) {			if (!strncmp(cpu_vendor,			    i386_cpuid_cpus[i].cpu_id, 12)) {				cpup = &i386_cpuid_cpus[i];				break;			}		}		if (cpup == NULL) {			vendor = CPUVENDOR_UNKNOWN;			if (cpu_vendor[0] != '\0')				vendorname = &cpu_vendor[0];			else				vendorname = "Unknown";			if (family > CPU_MAXFAMILY)				family = CPU_MAXFAMILY;			class = family - 3;			modifier = "";			name = "";			token = "";			cpu_setup = NULL;		} else {			token = cpup->cpu_id;			vendor = cpup->cpu_vendor;			vendorname = cpup->cpu_vendorname;			modifier = modifiers[modif];			if (family > CPU_MAXFAMILY) {				family = CPU_MAXFAMILY;				model = CPU_DEFMODEL;			} else if (model > CPU_MAXMODEL)				model = CPU_DEFMODEL;			i = family - CPU_MINFAMILY;			name = cpup->cpu_family[i].cpu_models[model];			if (name == NULL)			    name = cpup->cpu_family[i].cpu_models[CPU_DEFMODEL];			class = cpup->cpu_family[i].cpu_class;			cpu_setup = cpup->cpu_family[i].cpu_setup;		}	}	if (*token)		sprintf(cpu_model, "%s %s%s (\"%s\" %s-class)", vendorname,			modifier, name, token, classnames[class]);	else		sprintf(cpu_model, "%s %s%s (%s-class)", vendorname, modifier,			name, classnames[class]);	printf("%s: %s", cpu_device, cpu_model);#if defined(I586_CPU) || defined(I686_CPU)	if (cpu_feature && (cpu_feature & 0x10) >> 4) {	/* Has TSC */		calibrate_cyclecounter();		printf(" %d MHz", pentium_mhz);	}#endif	printf("\n");	cpu_class = class;	/*	 * Now that we have told the user what they have,	 * let them know if that machine type isn't configured.	 */	switch (cpu_class) {#if !defined(I386_CPU) && !defined(I486_CPU) && !defined(I586_CPU) && !defined(I686_CPU)#error No CPU classes configured.#endif#ifndef I686_CPU	case CPUCLASS_686:		printf("NOTICE: this kernel does not support Pentium Pro CPU class\n");#ifdef I586_CPU		printf("NOTICE: lowering CPU class to i586\n");		cpu_class = CPUCLASS_586;		break;#endif#endif#ifndef I586_CPU	case CPUCLASS_586:		printf("NOTICE: this kernel does not support Pentium CPU class\n");#ifdef I486_CPU		printf("NOTICE: lowering CPU class to i486\n");		cpu_class = CPUCLASS_486;		break;#endif#endif#ifndef I486_CPU	case CPUCLASS_486:		printf("NOTICE: this kernel does not support i486 CPU class\n");#ifdef I386_CPU		printf("NOTICE: lowering CPU class to i386\n");		cpu_class = CPUCLASS_386;		break;#endif#endif#ifndef I386_CPU	case CPUCLASS_386:		printf("NOTICE: this kernel does not support i386 CPU class\n");		panic("no appropriate CPU class available");#endif	default:		break;	}	/* configure the CPU if needed */	if (cpu_setup != NULL)		cpu_setup(cpu_device);	if (cpu == CPU_486DLC) {#ifndef CYRIX_CACHE_WORKS		printf("WARNING: CYRIX 486DLC CACHE UNCHANGED.\n");#else#ifndef CYRIX_CACHE_REALLY_WORKS		printf("WARNING: CYRIX 486DLC CACHE ENABLED IN HOLD-FLUSH MODE.\n");#else		printf("WARNING: CYRIX 486DLC CACHE ENABLED.\n");#endif#endif	}#if defined(I486_CPU) || defined(I586_CPU) || defined(I686_CPU)	/*	 * On a 486 or above, enable ring 0 write protection.	 */	if (cpu_class >= CPUCLASS_486)		lcr0(rcr0() | CR0_WP);#endif}