Missing CPU ID in x86/fat/fat.c

Achim Gratz Stromeko at nexgo.de
Sun Dec 6 08:38:03 UTC 2015


Several new CPU, while already defined in the fake_cpuid_table, have no
corresponding case statement in the selection function, which seemingly
causes them to be treated as a generic P6 CPU for Intel and I'm not sure
what a Jaguar would be detected as.  The following patch copies the
corresponding lines from the x86_64 branch to (hopefully) the right
place.

--- origsrc/gmp-6.1.0/mpn/x86/fat/fat.c	2015-11-01 16:19:49.000000000 +0100
+++ src/gmp-6.1.0/mpn/x86/fat/fat.c	2015-11-28 14:30:03.016355800 +0100
@@ -351,6 +351,13 @@ __gmpn_cpuvec_init (void)
 		case 0x2c:		/* WSM Gulftown */
 		case 0x2e:		/* NHM Beckton */
 		case 0x2f:		/* WSM Eagleton */
+	    case 0x37:		/* Silvermont */
+	    case 0x4a:		/* Silvermont */
+	    case 0x4c:		/* Airmont */
+	    case 0x4d:		/* Silvermont/Avoton */
+	    case 0x5a:		/* Silvermont */
+	    case 0x5c:		/* Goldmont */
+	    case 0x5f:		/* Goldmont */
 		  TRACE (printf ("  nehalem/westmere\n"));
                   CPUVEC_SETUP_p6_mmx;
                   CPUVEC_SETUP_p6_p3mmx;
@@ -362,7 +369,20 @@ __gmpn_cpuvec_init (void)
 		case 0x2a:		/* SBR */
 		case 0x2d:		/* SBR-EP */
 		case 0x3a:		/* IBR */
+	    case 0x3e:		/* IBR Ivytown */
 		case 0x3c:		/* Haswell */
+	    case 0x3f:		/* Haswell server */
+	    case 0x45:		/* Haswell ULT */
+	    case 0x46:		/* Crystal Well */
+	    case 0x3d:		/* Broadwell */
+	    case 0x47:		/* Broadwell */
+	    case 0x4f:		/* Broadwell server */
+	    case 0x56:		/* Broadwell microserver */
+	    case 0x4e:		/* Skylake client */
+	    case 0x55:		/* Skylake server */
+	    case 0x5e:		/* Skylake */
+	    case 0x8e:		/* Cabylake */
+	    case 0x9e:		/* Cabylake */
 		  TRACE (printf ("  sandybridge\n"));
                   CPUVEC_SETUP_p6_mmx;
                   CPUVEC_SETUP_p6_p3mmx;
@@ -432,13 +452,14 @@ __gmpn_cpuvec_init (void)
              break;
 
             case 0x14:         /* bobcat */
+       case 0x16:              /* jaguar */
               TRACE (printf ("  bobcat\n"));
               CPUVEC_SETUP_k7;
               CPUVEC_SETUP_k7_mmx;
               CPUVEC_SETUP_bobcat;
              break;
 
-            case 0x15:         /* bulldozer */
+            case 0x15:         /* bulldozer, piledriver, steamroller, excavator */
               TRACE (printf ("  bulldozer\n"));
               CPUVEC_SETUP_k7;
               CPUVEC_SETUP_k7_mmx;


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada


More information about the gmp-bugs mailing list