rem: int i;
add: uint32 i;
context: Intel_identify(cpuid_info *info){	// the code for this function looks very boring and tedious	// (that's because it's very boring and tedious)	// but I think it's correct anyway (there's always that possibility!)		int type, family, model, sig;		get_cpuid(info, 1, 0);	type   = info->eax_1.type;	family = info->eax_1.family;	model  = info->eax_1.model;		sig = info->regs.eax;	printf("%12s  0x%08X\n", "Signature:", sig);		printf("%12s %2d '", "Type:", type);	if      (type == 0) printf("Original OEM");	else if (type == 1) printf("Overdrive");	else if (type == 2) printf("Dual-capable");	else if (type == 3) printf("Reserved");	printf("'\n");	printf("%12s %2d '", "Family:", family);	if      (family == 3)  printf("i386");	else if (family == 4)  printf("i486");	else if (family == 5)  printf("Pentium");	else if (family == 6)  printf("Pentium Pro");	else if (family == 15) printf("Pentium 4");	printf("'\n");		if (family == 15) {		int efamily = (info->regs.eax >> 20) & 0xff;		printf("Extended family: %d\n", efamily);	}			printf("%12s %2d '", "Model:", model);	switch (family) {	case 3:		break;	case 4:		if      (model == 0) printf("DX");		else if (model == 1) printf("DX");		else if (model == 2) printf("SX");		else if (model == 3) printf("487/DX2");		else if (model == 4) printf("SL");		else if (model == 5) printf("SX2");		else if (model == 7) printf("write-back enhanced DX2");		else if (model == 8) printf("DX4");					break;	case 5:		if      (model == 1) printf("60/66");		else if (model == 2) printf("75-200");		else if (model == 3) printf("for 486 system");		else if (model == 4) printf("MMX");		break;	case 6:		if      (model == 1) printf("Pentium Pro");		else if (model == 3) printf("Pentium II Model 3");		else if (model == 5) printf("Pentium II Model 5/Xeon/Celeron");		else if (model == 6) printf("Celeron");		else if (model == 7) printf("Pentium III/Pentium III Xeon - external L2 cache");		else if (model == 8) printf("Pentium III/Pentium III Xeon - internal L2 cache");		break;	case 15:		break;	}	printf("'\n");		if (model == 15) {		int emodel = (info->regs.eax >> 16) & 0xf;		printf("Extended model: %d\n", emodel);	}		printf("%12s  0x%08lX\n", "Features:", info->eax_1.features);		{		int id = info->regs.ebx & 0xff;		printf("%12s %2d '%s'\n", "Brand ID:", id, Intel_brand_string(id, sig));	}		printf("%12s %2d\n", "Stepping:", info->eax_1.stepping);	printf("%12s %2d\n", "Reserved:", info->eax_1.reserved_0);		get_cpuid(info, 0x80000000, 0);	if (info->regs.eax & 0x80000000) {		// extended feature/signature bits supported		if (info->regs.eax >= 0x80000004) {			int i;						printf("\nExtended brand string:\n'");			for (i = 0x80000002; i <= 0x80000004; ++i) {				get_cpuid(info, i, 0);				print_regs(info);			}			printf("'\n");		}	}}