summaryrefslogtreecommitdiff
path: root/mpn/x86
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2020-11-10 18:31:29 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2020-11-10 18:31:29 +0100
commitd74ea45e9f0ae0a67a816f8a2bdc62704bfae017 (patch)
tree32fc7332d40005e6286cd73a2704383e943956bd /mpn/x86
parent0e35ba8da9fef7b5cb30758a37c0158cd59e7e95 (diff)
downloadgmp-d74ea45e9f0ae0a67a816f8a2bdc62704bfae017.tar.gz
mpn/x86/fat/fat.c: Add more CPUs
Diffstat (limited to 'mpn/x86')
-rw-r--r--mpn/x86/fat/fat.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/mpn/x86/fat/fat.c b/mpn/x86/fat/fat.c
index 18be05a39..4c8cf3c23 100644
--- a/mpn/x86/fat/fat.c
+++ b/mpn/x86/fat/fat.c
@@ -105,6 +105,7 @@ static struct {
{ "steamroller","AuthenticAMD", MAKE_FMS (21, 0x30) },
{ "excavator", "AuthenticAMD", MAKE_FMS (21, 0x60) },
{ "jaguar", "AuthenticAMD", MAKE_FMS (22, 1) },
+ { "zen", "AuthenticAMD", MAKE_FMS (23, 1) },
{ "viac3", "CentaurHauls", MAKE_FMS (6, 0) },
{ "viac32", "CentaurHauls", MAKE_FMS (6, 9) },
@@ -335,6 +336,28 @@ __gmpn_cpuvec_init (void)
CPUVEC_SETUP_atom_sse2;
break;
+ case 0x37: /* Silvermont */
+ case 0x4a: /* Silvermont */
+ case 0x4c: /* Airmont */
+ case 0x4d: /* Silvermont/Avoton */
+ case 0x5a: /* Silvermont */
+ TRACE (printf (" silvermont\n"));
+ CPUVEC_SETUP_atom;
+ CPUVEC_SETUP_atom_mmx;
+ CPUVEC_SETUP_atom_sse2;
+ CPUVEC_SETUP_silvermont;
+ break;
+
+ case 0x5c: /* Goldmont */
+ case 0x5f: /* Goldmont */
+ case 0x7a: /* Goldmont Plus */
+ TRACE (printf (" goldmont\n"));
+ CPUVEC_SETUP_atom;
+ CPUVEC_SETUP_atom_mmx;
+ CPUVEC_SETUP_atom_sse2;
+ CPUVEC_SETUP_goldmont;
+ break;
+
case 0x1a: /* NHM Gainestown */
case 0x1b:
case 0x1e: /* NHM Lynnfield/Jasper */
@@ -362,6 +385,7 @@ __gmpn_cpuvec_init (void)
case 0x2a: /* SBR */
case 0x2d: /* SBR-EP */
case 0x3a: /* IBR */
+ case 0x3e: /* IBR Ivytown */
case 0x3c: /* Haswell client */
case 0x3f: /* Haswell server */
case 0x45: /* Haswell ULT */
@@ -428,8 +452,6 @@ __gmpn_cpuvec_init (void)
case 0x0f: /* k8 */
case 0x11: /* "fam 11h", mix of k8 and k10 */
case 0x13: /* unknown, conservatively assume k8 */
- case 0x16: /* unknown, conservatively assume k8 */
- case 0x17: /* unknown, conservatively assume k8 */
TRACE (printf (" k8\n"));
CPUVEC_SETUP_k7;
CPUVEC_SETUP_k7_mmx;
@@ -444,6 +466,7 @@ __gmpn_cpuvec_init (void)
break;
case 0x14: /* bobcat */
+ case 0x16: /* jaguar */
TRACE (printf (" bobcat\n"));
CPUVEC_SETUP_k7;
CPUVEC_SETUP_k7_mmx;
@@ -454,6 +477,14 @@ __gmpn_cpuvec_init (void)
TRACE (printf (" bulldozer\n"));
CPUVEC_SETUP_k7;
CPUVEC_SETUP_k7_mmx;
+ CPUVEC_SETUP_bd1;
+ break;
+
+ case 0x17: /* zen */
+ case 0x19: /* zen3 */
+ TRACE (printf (" zen\n"));
+ CPUVEC_SETUP_k7;
+ CPUVEC_SETUP_k7_mmx;
break;
}
}