File: ChangeLog

package info (click to toggle)
cpuid 20250513-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,504 kB
  • sloc: ansic: 21,626; makefile: 169; perl: 63
file content (3144 lines) | stat: -rw-r--r-- 153,218 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
Tue May 13 2025 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Tue May 13 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated (0,6),(10,13),1 (Granite Rapids) with stepping names
	  B0/H0, from ILPMDF*.

Mon May 12 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected synth decoding (0,6),(11,7) typos: 11 was 10.
	* cpuid.c: Updated synth decoding for (0,6),(10,13) Xeon 6 6x00 Granite
	  Rapids.
	* cpuid.c: Updated synth decoding for (0,6),(10,14) Xeon 6 6x00P Granite
	  Rapids.
	* cpuid.c: Simplified synth decoding for (0,6),(10,15) Xeon 6 6700E
	  Sierra Forest.
	* cpuid.man: Added AMD docs: 58251, 58730.
	* cpuid.man: Added new Intel docs: 820922, 835486, 843306.

Fri Apr 25 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed synth decoding for (0,6),(11,5),0 stepping from
	  Arrow Lake-U A1 to A0, per a new spec update, 834774-007.

Thu Apr 24 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed synth decoding for (11,15),(0,8) to Shimada Peak,
	  based on knowledge that the Zen 5 Threadripper is Shimada Peak, and
	  https://docs.amd.com/v/u/en-US/dh300-amd-ryzen-threadripper-tr5.

Mon Apr 21 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for (0,6),(13,5) Wildcat Lake, based on
	  Coreboot*.  For uarch decoding, just added comments, because it's all
	  pure speculation.
	* cpuid.c: Added comments about Hygon (9,15),(0,4) and (9,15),(0,6), for
	  which no core names are known.

Sat Apr 19 2025 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sat Apr 19 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added uarch & synth decoding for (0,6),(13,7) Raptor Cove,
	  Bartlett Lake, based on LX*.

Thu Apr  3 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/ecx asymmetric RDT-[AM].
	* cpuid.c: Added 0x12/0/eax 256BITSGX EGETKEY256 & EREPORT2.
	* cpuid.c: Changed leaf 0x1e subleaf walk to use to 0x1e/0/eax as
	  max_subs, per new documentation.
	* cpuid.c: Added 0x27 leaf.
	* cpuid.c: Added 0x28 leaf.

Mon Mar 31 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: For synth decoding for (0,6),(11,14), stop special-casing the
	  Alder Lake-N/Twin Lake CPUS based on "Core" brand.  It's a distinction
	  without a difference, and the branding is too inconsistent.

Wed Mar 26 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected typo in 0x8000000a/edx: idle HLT intercept.
	* cpuid.c: Added hypervisor+3/ecx (Microsoft) fields, based on LX*
	  patches from Nuno Das Neves: dispatch intr injection available,
	  GHCB root mapping available.  I could find no actual docs.

Tue Mar 25 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Comment updates about Panther Lake.  Nothing substantive.
	* cpuid.c: Comment updates about leaf 0x1a native model ID's.  Not
	  conclusive or substantive.

Sun Mar 16 2025 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Thu Mar 13 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated synth decoding for (0,6),(11,6) to mention Atom
	  P6900, name determined from an Intel SA about DSA.  SSG* confirms that
	  Grand Ridge is Crestmont.
	* cpuid.c: Changed uarch synth for (0,6),(10,15) to Crestmont.  The
	  Sierra Forest name appears only under synth decoding, similar to
	  Meteor Lake & Grand Ridge.

Sat Mar  1 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for (0,6),(11,7) Xeon E-2400 & Xeon 6300.

Thu Feb 13 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Improved synth decoding for (0,6),(10,15),3 Sierra Forest C0,
	  Xeon 6 6700E-Series.

Mon Feb 10 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed synth decoding for (8,15),(9,0-7) Van Gogh to
	  Custom APU: Steam Deck.
	* cpuid.c: Changed synth decoding for (8,15),(9,8-15) Mero to
	  Custom APU: Magic Leap Demophon.

Sat Feb  8 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed synth decoding for (11,15),(1,*) to "5th Gen", and
	  uarch decoding for (11,15),(1,*) to "Zen 5c".

Mon Jan 13 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed synth decoding for (10,15),(7,0-7) to be
	  Phoenix/Hawk Point.  For (10,15),(7,5) specifically, instlatx64 has
	  samples: Ryzen 7 8845HS (Hawk Point) and Ryzen 7 8700G (Phoenix).  It
	  may not be possible to differentiate the cases with just cpuid data.

Tue Jan  7 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for (0,6),(0,9,2) Timna, a canceled
	  precursor to Banias, circa 2000.

Tue Jan  7 2025 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Improved synth decoding for (0,6),(12,5) Arrow Lake-H and its
	  A1 (2) stepping.
	* cpuid.c: Improved synth decoding for (0,6),(12,6) Arrow Lake-H and its
	  A0/B0 (2) stepping.
	* cpuid.c: Improved synth decoding for (0,6),(11,5) Arrow Lake-U and its
	  A1 (0) stepping.

Mon Oct 28 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added AMD PkgType for Ryzen 9000 (11,15),(4,*).
	* cpuid.man: Added 57896 doc.

Wed Oct 23 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Oct 23 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed cut&paste error in print_80000025_ebx, possibly
	  resulting in SIGSEGV: cached segments hard limit is only bit 11.

Mon Oct 21 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Oct 18 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/eax MOVRS instructions.
	* cpuid.c: Added 7/1/ecx RDMSR/WRMSRNS immediates supported.
	* cpuid.c: Renamed 7/1/edx AVI-COMPLEX to AMX-complex.
	* cpuid.c: Added leaf 0x1e subleaf walk with hard-coded max_subs of 1.
	* cpuid.c: Added 0x1e/1 subleaf.
	* cpuid.c: Changed leaf 0x23 subleaf walk to use a mask of subleaves.
	* cpuid.c: Added 0x23/4 subleaf.
	* cpuid.c: Added 0x23/5 subleaf.

Fri Oct 18 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated synth decoding for (0,6),(11,5) to Arrow Lake-U.
	* cpuid.c: Changed uarch decoding for (0,6),(11,5) from
	  Redwood Cove+Crestmont (from 319433-046's Meteor Lake claim) to
	  Lion Cove+Skymont (from 319433-054's Arrow Lake-U claim).
	* cpuid.c: Added uarch & synth decoding for Intel's (4,15),(0,0) and
	  (4,15),(0,1): Nova Lake (Panther Cove), based on 319433-054's
	  MSR_CPUID_table*.

Wed Oct 16 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: #ifdef'ed #define _GNU_SOURCE, in case it already was defined.
	* cpuid.c: Marked real_get()'s quiet formal as UNUSED, which it will be
	  if !defined(USE_CPUID_MODULE).
	* cpuid.c: Resized decode_amd_model's proc formal to 34 bytes, which is
	  just a tuned value: it's large enough to accomodate any returned
	  strings, and small enough not to trip an overzealous gcc
	  -Wformat-overflow=2 warning when this is used as an sprintf argument
	  in decode_override_brand.

Wed Oct 16 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added cpuset_destroy to real_setup USE_SCHED_SETAFFINITY_NP,
	  per Christof Meerwald.

Wed Oct 16 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected print_80000001_ebx_amd PkgType logic to use
	  MaskMm (AMD XM & high-order M bit), similar to previous changes to use
	  FMm, etc. in decode_synth_amd().
	* cpuid.c: Added print_80000001_ebx_amd PkgType for (10,15),(1,*) Genoa,
	  (10,15),(10,*) Bergamo/Siena, and (11,15),(0,*) Turin.
	* cpuid.c: Added 0x8000000a/edx EXITINFO1 non-interceptible shutdown.
	* cpuid.c: Added 0x8000001a/eax 512-bit SSE executed full-width.
	* cpuid.c: Added 0x8000001b/eax IBS load latency filtering support.
	* cpuid.c: Added 0x8000001b/eax simplified DTLB page size & miss report.
	* cpuid.c: Added 0x8000001f/eax guest intercept control support.
	* cpuid.c: Added 0x8000001f/eax segmented RMP support.
	* cpuid.c: Added many new fields to 0x80000021/eax.
	* cpuid.c: Added 0x80000021/ebx return addr predictor size.
	* cpuid.c: Widened 0x80000022/ebx number of available UMC PMCs.
	* cpuid.c: Added leaf 0x80000025 Segmented RMP Table.
	* cpuid.man: Added new AMD docs.

Tue Oct 15 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed Haiku patch to use pthread_self, per Christof Meerwald.

Tue Oct 15 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Manually reverted Christof Meerwald's first NetBSD patch, and
	  applied his replacement NetBSD & Haiku patch.
	* cpuid.c: Cleaned up positions of the OS-specific #if/#ifdef blocks.
	* cpuid.c: In real_get(), #ifdef'ed cpuid module lseek & read with
	  USE_CPUID_MODULE.
	* cpuid.c: Removed OS-specific lseek & off_t hacks, because they only
	  were needed by the real_get() code, now under #ifdef USE_CPUID_MODULE,
	  and that's Linux-specific.

Tue Oct 15 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/ebx IA32_MISC_ENABLE cannot limit CPUID max.

Fri Oct 11 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for Intel Core Ultra 200S.
	* cpuid.c: Added (synth) decoding for Intel Core Ultra 200V.
	* cpuid.c: Changed Skymont & Lion Cove processes to TSMC N3/N3B.
	* cpuid.man: Added new Intel docs.

Tue Sep 24 2024 Christof Meerwald <cmeerw@cmeerw.org>
	* cpuid.c: Add support for NetBSD.

Mon Sep 16 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Sep 15 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated AMD Zen 3/4/5 die processes with specific TSMC nodes,
	  where known & consistent.  (Earlier generations appear to be a mix of
	  GloFo & TSMC.)
	* cpuid.c: Updated AMD Instinct MI300 CPUs to MI300A/C.

Sun Sep 15 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Based on LLVM patch from AMD's Ganesh Gopalasubramanian:
	* cpuid.c: Added numerous early AMD core names for Zen 5.
	* cpuid.c: Updated AMD 4700S Desktop Kit from Oberon, the GPU name, to
	  Cardinal, the CPU core name.
	* cpuid.c: Added AMD 4800S Desktop Kit ProjectX core name.

Fri Sep 13 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Sep 13 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed a warning about a potential buffer overflow in
	  decode_synth_amd detected by gcc at -O2 (detected via an
	  interprocedural optimaztion, I think).

Thu Sep 12 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Sep 11 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: For (0,6),(11,14),0 Intel N-Series, add Twin Lake core
	  name.  It can only be distinguished with MSR IA32_PLATFORM_ID (17h) --
	  or by brand name (which would be unreliable if new brandings appear).

Tue Aug 27 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: For (synth) decoding of VIA (0,7),(5,11), removed Zhaoxin
	  KaiXian KX-7000 possibility, based on findings that those likely are
	  rebadged Intel CPUs instead.

Mon Aug 26 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In decode_uarch_intel(), for Jintide Gen1, used family field
	  to indicate that they're based on Intel Skylake.
	* cpuid.c: In decode_uarch_via(), for ZhangJiang CPU's, used family
	  field to to indicate that they're based on VIA C7.  Did not provide a
	  family for WuDaoKou or LuJiaZui, because it isn't clear how far
	  they have diverged.

Tue Aug 20 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed comments after 743844-012 corrects (0,6),(11,15),5
	  to be stepping H0.
	* cpuid.c: In decode_uarch_hygon(), widened Moksha name to include
	  all of Hygon family (9,15).  Based on Jinke F. patch to perfmon2,
	  which applies the name to all of fam18h.
	* cpuid.c: In decode_uarch_hygon(), used family field to indicate that
	  it's based on AMD Zen.

Mon Aug 19 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added missing AMD Ryzen numbers: Rembrandt=6000/7000,
	  Mendocino=7000, Raphael=7000, Phoenix=7000/8000, Granite Ridge=9000.

Sun Aug 11 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated synth decoding for (0,6),(10,15) to detect
	  Intel Xeon 6 (Sierra Forest) CPUs.

Thu Jul 18 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: For (0,6),(8,15),8, add Xeon Scalable (5th Gen).  Some of
	  these have been rebranded from 4th Gen to 5th Gen: LCC U1.

Wed Jul 17 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000007/edx fast CPPC, mentioned in the PPR for
	  Family 19h Model 61h, Revision B1.

Tue Jul 16 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Jul 15 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: For AMD Zen CPUs, overhauled uarch & synth decoding to
	  determine the CPU model from only the extended model & high bit of the
	  model field.  Also, determine the stepping (revision) mechanically
	  from the low-order 3 bits of the model and the stepping number.
	  This should correctly identify retail Zen 5 Ryzen's.  This also
	  corrects some stepping bugs from the Zen 1 era.

Tue Jul  9 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sat Jul  6 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 6/eax IA32_HWP_CTL MSR supported.
	* cpuid.c: Added 7/2/edx MONITOR perf unaffected by tbl overflow.
	* cpuid.c: Added synth decoding for Hygon Dhyana B1 & C2.  Still no
	  information on a uarch name for these, so decode_uarch_hygon() remains
	  silent for them.

Tue May 28 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added uarch synth decoding for (0,6),(5,5),11 Cooper Lake.
	  The synth decoding was already present.  Its absence from
	  decode_uarch_intel was just an oversight.

Sun May 12 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed division-by-zero error in decode_mp_synth Intel leaf
	  1/4 (zero fallback).  This is meant for old, incomplete cpuid -r
	  dumps, but even for hand-crafted dumps, determining 0 cores and then
	  dividing by that 0 is unacceptable.

Tue Apr  9 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Apr  7 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x8000000a/edx PMC virtualization.
	* cpuid.c: Added 0x8000000a/edx idle HLT intercept.
	* cpuid.c: Added 0x8000001f/eax PMC virtual support for SEV-ES/SNP.
	* cpuid.c: Added 0x8000001f/eax mention of SEV-SNP to existing fields.
	* cpuid.c: Added 0x8000001f/eax RMPREAD instruction.
	* cpuid.c: Added 0x8000001f/eax secure AVIC support.
	* cpuid.c: Added 0x8000001f/eax allowed SEV features support.
	* cpuid.c: Added 0x8000001f/eax write to hypervisor in-used allowed.
	* cpuid.c: Added 0x8000001f/eax IBPB on entry support.

Sun Apr  7 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Siena to (10,15),(10,x) synth decoding, based on 58268
	  Arch Overview.
	* cpuid.man: Added 58268: AMD EPYC 8004 Series Architecture Overview.

Sat Apr  6 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added preliminary (10,15),(7,12) Hawk Point synth decoding.

Mon Apr  1 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed spelling: EPGR->EGPR (extended GPR's).

Sat Mar 30 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sat Mar 30 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 5/ecx monitorless MWAIT.
	* cpuid.c: Added 7/1/edx user-timer events.
	* cpuid.c: Added 7/1/edx AVX10 instructions.
	* cpuid.c: Added 7/1/edx APX advanced performance extensions.
	* cpuid.c: Added 7/1/edx MWAIT instruction (overrides 1/ecx[3]).
	* cpuid.c: Added Intel-specific print_instr_synth_intel to determine
	  presence of MWAIT from 1/ecx and/or 7/1/edx.
	* cpuid.c: Updated 12/n/ecx section property values 1 & 3.
	* cpuid.c: Added 14/0/ebx PTTT processor trace trigger tracing.
	* cpuid.c: Added 14/1/eax number of IA32_RTIT_TRIGGERx_CFG MSRs,
	  including D4_IMAGES decoding.
	* cpuid.c: Added 14/1/ecx flags.
	* cpuid.c: Added MINUS24_IMAGES decoding for 0xf/1/eax QoS monitoring
	  counter size.
	* cpuid.c: Added 0x23/1 sub-header: Architecture Performance Monitoring
	  Extended Counters Supported Bitmaps (0x23/1), and simplified fields.
	* cpuid.c: Added 0x23/2 sub-header: Architecture Performance Monitoring
	  Extended Auto Counter Reload (ACR) Bitmaps (0x23/2), expanded on
	  existing field descriptions, and added "can cause reloads" fields.
	* cpuid.c: Added 0x24 leaf: Converged Vector ISA.
	* cpuid.c: Added to print_d_n: new XSAVE area: 19 for APX EPGR
	  (extended general purpose registers).
	* cpuid.man: Added new Intel 355828 (APX) doc.

Tue Mar 26 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added uarch decoding for (11,15),(1,0), which is mentioned
	  with (11,15),(0,0) in the title of 58088 AMD 1Ah Models 00h-0Fh and
	  Models 10h-1Fh ACPI v6.5 Porting Guide.

Mon Mar 25 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Expanded br.xeon test to include brands with "XEON", and
	  br.scalable to include "BRONZE", "PLATINUM", etc. (all caps), based on
	  Emerald Rapids (engr?) sample.  I don't know if this is a change Intel
	  will use moving forward, or a quirk of engr samples, but checking for
	  it is harmless enough.

Sun Mar 24 2024 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Mar 24 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated synth decoding for (0,6),(12,15),2 Emerald Rapids
	  A1/R1.
	* cpuid.man: Added new Intel docs.

Sat Mar 23 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In do_real(), for the 0x1b leaf, add a sanity check to avoid
	  infinite recursion if a hypervisor never reports invalid (0) on any
	  subleaf.  The sanity check checks for a subleaf identical to its
	  predecessor, which is not reasonable.

Sat Mar 23 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth & uarch decoding for (0,6),(13,13) Clearwater
	  Forest.
	* cpuid.c: Updated (0,6),(8,12),1 to include stepping B0, from ILPMDF*
	* cpuid.c: Updated (0,6),(11,15),5 to Raptor Lake stepping H0, based on
	  preponderance of evidence.
	* cpuid.c: Added synth decoding for (0,6),(10,10) Core Ultra CPUs.
	* cpuid.c: Updated (0,6),(11,7) to include Core i*-14000.  Some CPUs
	  having this branding, and it's not clear what's different from the
	  Core i*-13000 versions.  The steppings don't seem to matter.
	  Inspection suggests maybe CET_SSS.
	* cpuid.c: Corrected synth decoding for (10,15),(1,8) Storm Peak: Ryzen
	  Threadripper 7000.
	* cpuid.c: Added synth decoding for (10,15),(7,5),2 AMD Ryzen Phoenix F2.
	* cpuid.c: Added very preliminary uarch decoding for (10,15),(6,0) and
	  (10,15),(7,0), both Zen 5.
	* cpuid.c: Changed preliminary synth decoding for (0,6),(11,5) to Arrow
	  Lake, based on Intel SDE 9.33.0.
	* cpuid.c: Added synth decoding for (0,6),(8,13),0 Tiger Lake-H P0
	  stepping.
	* cpuid.c: Added synth decoding for (0,6),(11,13),0 Lunar Lake A0
	  stepping.
	* cpuid.c: Changed uarch decoding for (0,6),(13,13) to Darkmont, the
	  presumed uarch for Clearwater Forest.

Sat Mar 23 2024 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 12/1/eax AEX attribute enabled, as described by Scott
	  Raynor, Intel.
	* cpuid.c: Added 7/1/eax NMI-source reporting.
	* cpuid.c: Added 7/1/eax INVD prevention after BIOS done.
	* cpuid.c: Renamed 7/1/ebx PKNDKB instruction.
	* cpuid.c: Added 7/1/edx URDMSR, UWRMSR instructions.
	* cpuid.c: Added 0xa/ebx additional events.
	* cpuid.c: Added 0xf/1/eax non-CPU agent features.
	* cpuid.c: For 0xf/0/edx supports L3 cache monitoring, removed
	  redundant "QoS".
	* cpuid.c: Renamed print_10_n_{eax,ecx} -> print_10_12_{eax,ecx}.
	* cpuid.c: Added 0x10/0/ebx cache bandwidth allocation supported.
	* cpuid.c: Replaced 0x10/{1,2}/ecx: non-CPU agent support.
	* cpuid.c: Renamed 0x10/{1,2}/ecx: non-contiguous bitmask supported.
	* cpuid.c: Added 0x10/5 Cache Bandwidth Allocation decoding.
	* cpuid.c: Renamed 0x23/0/ebx IA32_PERFEVTSELx EQ bit supported.
	* cpuid.c: Added 0x23/2 ACR counters bitmaps.

Sat Sep 23 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected synth decoding for (10,15),(10,x) to EPYC (4th Gen)
	  (server CPUs), instead of Ryzen (desktop CPUs).

Wed Sep 13 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (0,6),(12,12) Panther Lake synth decoding from LX*, but
	  left out corresponding uarch decoding which is alls rumors currently:
	  maybe Panther Cove, Cougar Cove, or something else.

Tue Sep  5 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added hypervisor+0xc ebx isolation type new value: TDX (3)
	  from LX*.

Tue Sep  5 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (11,5),(0,0) Zen 5 uarch from LX*.
	* cpuid.c: To decode_uarch_intel, added (0,6),(11,12) & (0,6),(11,13)
	  Lion Cove & Skymont as uarch underpinning Lunar Lake.

Wed Aug  9 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000021/eax selective branch prediction barrier,
	  PRED_CMD[IBPB] flushes branch type preds.  They appear to be only
	  synthetic flags provided for hypervisor guests!
	* cpuid.c: Added 0x80000021/eax CPU not affected by SRSO flag, from LX*.

Sat Aug  5 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (10,15),(8&9,0) uarch & synth decoding for AMD Instinct
	  MI300, from LKML: https://lkml.org/lkml/2023/7/20/668 patches.
	  In the past, Instinct MI* described just the GPU, but they seem to be
	  conflating them into a product name here.

Tue Aug  1 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.: Added prelim uarch decoding for (11,15),(2,0) & (11,15),(4,0),
	  both Zen 5, based on engr samples.  No synth decoding yet, because it
	  isn't known yet.
	* cpuid.c: Added prelim synth decoding for (0,6),(11,12) Lunar Lake from
	  Intel SDE 9.24.0 misc/cpuid/lnl/cpuid.def.  No uarch decoding, because
	  Lunar Lake uarch name is not known yet.
	* cpuid.c: Added prelim synth decoding for (0,6),(9,5) Sapphire Rapids
	  from Intel SDE 9.24.0 misc/cpuid/spr/cpuid.def.

Fri Jul 14 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for (0,6),(11,7),0 Raptor Lake A0
	  stepping, from Coreboot*.

Mon Jul  3 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/eax SHA512, SM3 & SM4 instructions.
	* cpuid.c: Added 7/1/ebx TSE PBNDKB instruction.
	* cpuid.c: Added 7/1/ebx AVX-VNNI-INT16 instructions.
	* cpuid.c: Added 7/1/edx UIRET flexibly updates UIF.
	* cpuid.c: Added 0x1b/2 TSE target.
	* cpuid.c: Corrected sub-leaf walk of leaf 0x1b to stop immediately if
	  sub-leaf 0 is invalid.

Sun Jul  2 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (uarch synth) & (synth) decoding for (0,6),(12,5)
	  Arrow Lake based on Lion Cove & Skymont.

Sat Jul  1 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000008/ebx IBPB_RET.
	* cpuid.c: Renamed 0x8000000a/edx extended LVT AVIC access changes.
	* cpuid.c: Renamed 0x8000000a/edx guest VMCB addr check.
	* cpuid.c: Added 0x8000000a/edx bus lock threshold.
	* cpuid.c: Renamed several 0x80000020 leaves & fields.
	* cpuid.c: Added 0x80000020/0/ebx assignable bandwidth monitoring
	  counters.
	* cpuid.c: Added 0x80000020/0/ebx SDCI allocation enforcement
	* cpuid.c: Added 0x80000020/5 PQoS Assignable Bandwidth Monitoring
	  Counters.

Fri Jun 30 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (0,6),(10,10),4 Meteor Lake-M C0
	  stepping from Coreboot*.

Wed Jun 14 2023 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Jun 14 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Improved (synth) identification for (0,6),(5,5),10 Intel
	  Xeon Scalable (3rd Gen) (Cooper Lake A0), based on 634897 doc.
	* cpuid.c: Changed (synth) identification for (0,6),(6,12) Intel Xeon
	  D-1700/2700 (Ice Lake-D).  Intel docs 714071 claim the stepping is
	  U1/U2, which contradicts ILPMDF*.  I'm using the actual docs.
	* cpuid.c: Updated comments with new Intel docs.
	* cpuid.c: Changed "Intel Scalable" to "Intel Xeon Scalable".
	* cpuid.man: Added new Intel docs.
	* cpuid.man: Added 613537, the new pub number for 336065, Intel Xeon
	  Processor Scalable Family Specification Update.

Mon Jun  5 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) differentiation for (0,6),(9,10),4 Intel
	  Pentium Gold 8500 series.

Sat May 13 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Made the (simple synth) fields non-default.  Too many people
	  were interpreting them as definitive and ignoring the much better
	  (synth) leaf, which uses the entirety of cpuid information.  This
	  impacts leaves 1, 0x80000001, and 0x80860001.  The (simple synth)
	  fields still are available, but only with the -S/--simple option.
	* cpuid.c: Organized option flags that need to be passed deeply down in
	  the print_reg* functions into a new print_opts_t, which will make
	  future options easier to add.
	* cpuid.c: Renamed the old "try" variables to "sub".  The word "try" was
	  a remnant of the original leaf 4 subleaf implemntation, before
	  subleaves were commonplace.  For leaf 4, one just kept "trying" to
	  read more cache data until it failed.  But most subleaves don't work
	  that way.

Sat May 13 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated (synth) decoding for (0,6),(8,15),{7,8} to mention
	  steppings {S2,S3} from ILPMDF* 20230512.
	* cpuid.c: Added (synth) decoding for (0,6),(11,14) pure Atom x7000E,
	  as a variation on other Alder Lake-N CPUs.
	* cpuid.c: Added (synth) decoding for (0,6),(9,10),4 Atom C1100 Arizona
	  Beach.

Thu May  5 2023 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri May  5 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed bug in (multi-processing synth) in the recently
	  rewritten decode_mp_synth().  The CPU counts for higher levels were
	  not dividing out counts from lower levels.  This is analogous to the
	  way print_apic_synth() subtracts out bit widths from lower levels.

Fri May  5 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Differentiate Core i3-N300 N-Series from ordinary N-Series.
	  (They appear to differ only in branding.)

Fri Apr 28 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added hypervisor+4/eax bit 21: use hypercalls for MMIO config
	  space I/O, based on LX* (Michael Kelley PCI pass-thru patches).  Not
	  documented by Microsoft yet.

Tue Apr 25 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In real_setup(), make inability to switch to CPU 0 no longer
	  a fatal error.  It is allowable for CPU 0 to be offlined, just like any
	  other.

Tue Apr 18 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (0,6),(8,15) Xeon W version of
	  Sapphire Rapids, from instlatx64 sample.
	* cpuid.c: Corrected (synth) & (uarch synth) for Sapphire Rapids:
	  family is Golden Cove, not Sunny Cove.
	* cpuid.c: Added (synth) & (uarch synth) Emerald Rapids family:
	  Raptor Cove.
	* cpuid.c: Added (synth) & (uarch synth) Granite Rapids family:
	  Redwood Cove.
	* cpuid.c: In decode_uarch_intel, mark Sapphire Rapids, Emerald Rapids
	  & Granite Rapids with core_is_uarch to avoid replicating the name in
	  (synth).

Sun Apr 16 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (0,6),(10,10),2 Meteor Lake-M B0
	  from Coreboot*.

Thu Apr  6 2023 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Thu Apr  6 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed bug in print_apic_synth() when interpreting leaf 0xb
	  and 0x1f bit widths: In fact, they are bit *offsets*, different from
	  the *widths* of leaf 4!  So the (APIC width synth) often has been off
	  by 1, and the (APIC synth) PKG_ID & CORE_ID values often have been
	  shifted incorrectly.
	* cpuid.c: For 0xb/*/eax & 0x1f/*/eax, rename field to "bit width of
	  level & previous levels" to reflect this definition.
	* cpuid.c: In print_apic_synth(), decode_mp_synth(), and
	  print_mp_synth(), support APIC bit fields for the newest 4 topology
	  layers: module, tile, die, die group.  And for the mp version, also
	  the older cu & pkg levels.
	* cpuid.c: In print_apic_synth(), use the extended APIC ID's when
	  available in a variety of leaves.
	* cpuid.c: In print_apic_synth() & decode_mp_synth(), support leaf 0xb
	  method for AMD/Hygon.
	* cpuid.c: In decode_mp_synth(), for the 1/0x80000008 method, use the
	  same family-specific technique to differentiate CU's from cores, or
	  cores from threads as in print_apic_synth().

Tue Apr  4 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added prelim Bergamo A1 stepping from sample from @YuuKi_AnS.

Fri Mar 31 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/edx AMX-COMPLEX instructions.
	* cpuid.c: Added 7/2/edx UC-lock disable.
	* cpuid.c: Added 0x10/n/ecx non-contiguous 1s value supported.
	* cpuid.c: Added 0x1c/ecx event logging supported bitmap.
	* cpuid.c: Added 0x23/0/ebx decoding.

Tue Mar 28 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Decode 0x80000026/1/ebx core type & native model.

Tue Mar 28 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: For 0x80000021/eax, capitalize REP STOSB & REP CMPSB to match
	  Intel versions in 7/1/eax.
	* cpuid.c: For 0x80000022/ecx, shorten description, show bitmask only in
	  hex.

Tue Mar 28 2023 Smita Koralahalli Channabasappa <Smita.KoralahalliChannabasappa@amd.com>
	* cpuid.c: Update CPUID utility with new feature bits as documented in
	  the AMD Processor Programming Reference for Family 19h and Model 11h:
	  0x8000000a/edx extended LVT offset fault change
	  0x80000021/eax enhanced predictive store forwarding, FSRS, FSRC,
	  FsGsKernelGsBaseNonSerializing
	  0x80000022/ebx number of available UMC PMCs
	  0x80000022/ecx bitmask representing active UMCs

Tue Mar 28 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Differentiate preliminary (uarch synth) for (0,6),(10,10);
	  (0,6),(10,11); (0,6),(10,12); and (0,6),(11,5) Crestmont Atom cores
	  from their Redwood Cove counterparts.
	* cpuid.c: Add preliminary (synth) & (uarch synth) for (0,6),(12,6)
	  Lion Cove & Skymont, from LX*.

Sat Mar 25 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 12/0/eax SGX ENCLS EUPDATESVN bit.
	* cpuid.c: Added 0x1f/*/ecx level type value "die group (6)".

Mon Mar 20 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (0,6),(8,15) Sapphire Rapids D &
	  E0 steppings from coreboot*.
	* cpuid.c: Improved (synth) decoding for (0,6),(6,10) Scalable 3rd Gen
	  Xeons to Ice Lake-SP.  Also, improved decoding for engr samples where
	  the brand string omits Xeon & Bronze/Silver/Gold/Platinum.

Fri Mar 17 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Improved (synth) decoding for (0,6),(11,14) Intel N-Series.
	* cpuid.c: Differentiate (synth) & (uarch synth) for (0,6),(11,14)
	  Alder Lake-N based on core type, much like for other Alder Lake models.
	  This corrects the cores to Gracemont.  As for Golden Cove, perhaps
	  P-cores never will exist for this model but, if they do, they should
	  now be decoded correctly.
	* cpuid.man: Added 759603: Intel Processor and Intel Core i3 N-Series
	  Datasheet, Volume 1 of 2.
	* cpuid.c: Updated (synth) decoding for (0,6),(11,15),5 with
	  Raptor Lake-S/HX/P.
	* cpuid.c: Updated (synth) decoding for (0,6),(11,10) with
	  Raptor Lake-H/U/P.

Mon Mar  6 2023 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Mar  5 2023 Todd Allen <todd.allen@etallen.com>
	* Based on Intel-Linux-Processor-Microcode-Data-Files (ILPMDF*), made
	  the following (synth) changes:
	* cpuid.c: Updated (0,6),(3,7),8 Bay Trail with stepping name C0.
	* cpuid.c: Added (0,6),(4,5),1 Haswell-ULT C0/D0 stepping.
	* cpuid.c: Corrected (0,6),(4,6),1 Crystal Well to C0 stepping.
	* cpuid.c: Updated (0,6),(4,7),1 Broadwell to include E0 stepping.
	* cpuid.c: Added (0,6),(5,5),3 Skylake B1 (Xeon Scalable).
	* cpuid.c: Added (0,6),(5,5),5 Skylake A0 (Xeon Scalable).
	* cpuid.c: Added (0,6),(5,5),11 Cooper Lake A1 (Xeon Scalable).
	* cpuid.c: Updated (0,6),(5,14),3 Skylake-H/S/E3, adding N0 & S0
	  steppings.
	* cpuid.c: Added (0,6),(6,10),5 Ice Lake C0 (Xeon Scalable).
	* cpuid.c: Added (0,6),(6,12),1 Ice Lake B0.
	* cpuid.c: Updated (0,6),(8,6),4 Snow Ridge with stepping B0.
	* cpuid.c: Updated (0,6),(8,6),5 Snow Ridge with stepping B1.
	* cpuid.c: Added (0,6),(8,6),1 Lakefield B2/B3 stepping.
	* cpuid.c: Corrected (0,6),(8,12),1 Tiger Lake stepping to B1.
	* cpuid.c: Added (0,6),(8,12),2 Tiger Lake C0.
	* cpuid.c: Added (0,6),(8,14),10 Coffee Lake D0.
	* cpuid.c: Added (0,6),(8,14),13 Whiskey Lake-U V0 stepping.
	* cpuid.c: Added (0,6),(8,15) Sapphire Rapids numerous steppings.
	* cpuid.c: Updated (0,6),(9,12) Jasper Lake with stepping A1.

Thu Mar  2 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Differentiate (0,6),(8,10) Lakefield P-cores from Tremont
	  E-cores, much as I previously did for Alder Lake & Raptor Lake.
	* cpuid.c: In decode_uarch_intel, for known Hybrid chips (Alder Lake,
	  Raptor Lake & Lakefield), only decode the uarch if it's one of the two
	  known hybrid types.  However, some (0,6),(9,7) Alder Lake's are
	  non-hybrid (Golden Cove only), so also decode core type == 0x00 there.
	* cpuid.c: In the Intel Core era, uarch families are identified only by
	  the initial uarch in the family.  So the family names in {braces},
	  which also are uarch names, can be confusing.  So, change (synth) and
	  (uarch synth) for those families to explain the relationships between
	  the subsequent uarch and the initial uarch, in the form of
	  "shrink of", "optim of", and the unusual "backport of".
	* cpuid.c: Added (4th Gen) to the (synth) description of (10,15),(1,*)
	  AMD EPYC Genoa.
	* cpuid.c: Updated (synth) for (10,15),(7,*) AMD Phoenix & Phoenix 2
	  CPUs to claim 4nm process.

Tue Feb 28 2023 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Feb 26 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected 7/1/eax fast REP instructions, where I'd left the
	  REP prefix out of the description.

Wed Feb 22 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/eax FRED & LKGS bits, from Intel Flexible Return and
	  Event Deliver (FRED).
	* cpuid.man: Added Intel Flexible Return and Event Deliver (FRED).
	* cpuid.c: Clarified 7/1/eax ArchPerfmonExt, which indicates that leaf
	  0x23 is valid.

Fri Feb 17 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (uarch synth) decoding for AMD Ryzen (Phoenix E0), based
	  on sample from bakerlab.org, which I missed on Oct 3 2022, when I
	  added the (synth) decoding.
	* cpuid.c: Added 0x80000001/ebx PkgType decoding for AMD (10,15) Family
	  19h CPUs: (2,1) Vermeer, (5,1) Cezanne/Barcelo, (6,1) Raphael, and
	  (7,0) Phoenix, based on their respective PPPR's.

Sun Feb 12 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added very early (synth) decoding for Lunar Lake.  There is
	  no corresponding (uarch synth) decoding, because no name is yet known
	  for the uarch.

Sat Feb 11 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (0,6),(9,10) Alder Lake Core names: i*-12000.
	* cpuid.c: Differentiate (0,6),(9,7) & (0,6),(9,10) Alder Lake Gracemont
	  E-cores from Golden Cove P-cores.
	* cpuid.c: Differentiate (0,6),(11,7); (0,6),(11,10) & (0,6),(11,15)
	  Raptor Lake Gracemont E-cores from Raptor Cove P-cores.
	* cpuid.c: Added (synth) & (uarch synth) decoding for (10,15),(7,8)
	  Phoenix 2, from Coreboot*.
	* cpuid.c: Renamed print_hypervisor_3_eax_xen to
	  print_hypervisor_3_0_eax_xen.
	* cpuid.c: Added print_hypervisor_3_0_ebx_xen and decode Xen tsc mode.
	* cpuid.c: Added (synth) decoding for (10,15),(6,1,1) Raphael B1.

Fri Jan 20 2023 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Jan 20 2023 Todd Allen <todd.allen@etallen.com>
	* Eliminate reliance on "old" build system.  Instead, for the cpuid.i386
	  and cpuid.x86_64, meant to be executable anywhere, including on old
	  hardware & distros, use static builds.  They're much bigger, but
	  utterly immune to library changes.

Wed Jan 18 2023 Todd Allen <todd.allen@etallen.com>
	* Intel's 13th Generation Core datasheet provides stepping names as
	  well as numbers!  So:
	* cpuid.c: Added synth decoding for (0,6),(11,7) Raptor Lake B0 stepping.
	* cpuid.c: Added synth decoding for (0,6),(11,15) Raptor Lake C0
	  steppings, and clarified case for unknown stepping.
	* cpuid.man: Added 743844: 13th Generation Core datasheet.
	* cpuid.c: Fixed (0,6)(12,15) synth typo: Emearld Rapids.

Tue Jan 17 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 6/eax IA32_HW_FEEDBACK_THREAD_CONFIG bit 25.
	* cpuid.c: Added 7/0/edx SGX-KEYS: SGX attestation services.
	* cpuid.c: Clarified 7/0/edx IA32_MCU_OPT_CTRL SRBDS mitigation MSR.
	* cpuid.c: Clarified 7/0/edx IA32_TSX_FORCE_ABORT MSR.
	* cpuid.c: Added 7/1/edx CET_SSS: shadow stacks w/o page faults.
	* cpuid.c: Added several 7/2/edx bits.
	* cpuid.c: In 0xd/0/eax, corrected CET_U & CET_S, which were IA32_XSS.
	* cpuid.c: In 0xd/0/eax, removed the IA32_XSS bits, which aren't
	  relevant for XCR0.
	* cpuid.c: For 0xd/1/ecx, enumerate the IA32_XSS bits instead of a
	  hex bitmask.
	* cpuid.c: For 0xd, added IA32_XSS PASID state (couple places).
	* cpuid.c: Renamed 0x1a: Native Model ID.
	* cpuid.c: Added synth & uarch decoding for (0,6),(11,15) Raptor Lake
	  from MSR_CPUID_table*.
	* cpuid.c: Added synth decoding for (0,6),(9,7),5 Pentium Gold G7400,
	  based on instlatx64 sample.
	* cpuid.c: Added rudimentary synth decoding for future (0,6),(12,15)
	  Emerald Rapids CPUs.
	* cpuid.c: Added 7/1/eax LASS: linear address space separation.
	* cpuid.c: Corrected 0x18/n/edx maximum number of addressible IDs, which
	  should use minus-one notation.

Tue Jan 17 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Certain leaves cannot be displayed correctly in isolation,
	  i.e. without information about other leaves saved in the stash.  For
	  example, the display for leaf 3 uses bits saved from leaf 1.  If the
	  -l/--leaf option is used to restrict cpuid to reading only a single
	  leaf, such leaves now are displayed as raw hex, rather than with
	  incorrect information.  This is handled by passing a NULL stash to
	  print_reg() and below, and by many new checks for a NULL stash.
	  Thanks to Bill Zissimopoulos for the bug report.

Mon Jan  9 2023 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated cache associativity strings used in 0x80000006 and
	  0x80000019 leaves to use value ranges, as in AMD docs.
	* cpuid.c: Fixed mistake in AMD L3 range reservation support: it's in
	  0x80000020/0 register EBX, not ECX.
	* cpuid.c: Added 0x80000026/0/edx extended APIC ID.

Tue Dec 13 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth & uarch decoding for (10,15),(1,1) Genoa, from
	  AMD 57095 revision guide.
	* cpuid.man: Added AMD 57095 revision guides, and some older guides that
	  I'd forgotten.

Thu Dec  1 2022 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Nov 30 2022 Todd Allen <todd.allen@etallen.com>
	* Clarified synth decoding for Intel Xeon D-1700.

Wed Nov 30 2022 Todd Allen <todd.allen@etallen.com>
	* Added uarch & synth decoding for AMD 4800S Desktop Kit, based on
	  instlatx64 sample.  The generation is known to be Zen 2 (7nm), but
	  the core is unknown.  I heard speculation for each of Ariel (rejected
	  PlayStation 5 CPU), or Lockhart/Scarlett (rejected Xbox CPU).
	* Added uarch decoding for AMD Genoa A1, based on instlatx64 sample
	  from @IanCutress.

Mon Nov 28 2022 Todd Allen <todd.allen@etallen.com>
	* Added uarch decoding for (0,6),(12,15) Emerald Rapids, from LX*.

Mon Nov 28 2022 Todd Allen <todd.allen@etallen.com>
	* Added synth & uarch decoding for (10,15),(10,1) Bergamo.

Mon Nov 28 2022 Todd Allen <todd.allen@etallen.com>
	* Added 0x8000000a/edx bits: ROGPT, VNMI, IBS virtualization.
	* Added 0x8000001b/eax bit: IBS L3 miss filtering support.
	* Added 0x8000001f/eax bits: RMPQUERY instruction support,
	  VMPL supervisor shadow stack support, VMGEXIT parameter support,
	  virtual TOM MSR support, IBS virtual support for SEV-ES guests,
	  SMT protection support, SVSM communication page MSR support,
	  VIRT_RMPUPDATE & VIRT_PSMASH MSR support.
	* Added 0x80000020/0/ecx bit: L3 range reservation support.
	* Added 0x80000021/eax bits: automatic IBRS,
	  CPUID disable for non-privileged.
	* Added 0x80000022/eax bit: AMD LBR & PMC freezing.
	* Added 0x80000022/ebx field: number of LBR stack entries.
	* Added 0x80000023 leaf: Multi-Key Encrypted Memory Capabilities.
	* Added 0x80000026 leaf: AMD Extended CPU Topology.

Fri Nov 11 2022 Mateusz Guzik <mjguzik@gmail.com>
	* cpuid.c: FreeBSD patch to use lseek64 and cpuset_setaffinity.

Tue Oct 11 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000022/eax AMD LBR V2 flag, from LX*.
	* cpuid.c: Note that (8,15),(10,0) Mendocino now is documented.

Mon Oct  3 2022 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Oct  3 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for AMD Ryzen (Phoenix E0), based on
	  sample from bakerlab.org.
	* cpuid.c: Added synth decoding for AMD Ryzen (Storm Peak A1), based on
	  sample from einstein11.aei.uni-hannover.de.
	* cpuid.c: Added synth & uarch synth decoding for (0,6),(11,5) Intel
	  Meteor Lake, based on MSR_CPUID_table*.
	* cpuid.c: Added synth & uarch synth decoding for (0,6),(11,6) Intel
	  Grand Ridge (Crestmont), based on MSR_CPUID_table*.
	* cpuid.c: Added synth & uarch synth decoding for (0,6),(11,14) Intel
	  Granite Rapids, based on MSR_CPUID_table*.
	* cpuid.c: Confirmed several other existing synth & uarch decodings based
	  on MSR_CPUID_table*, and updated comments (no functional changes).
	* cpuid.c: Renamed 7/0/eax enh hardware feedback to simply Thread
	  Director.  Evidently, Intel just calls it that now too.
	* cpuid.c: Added 7/1/eax RAO-INT instructions, CMPccXADD instructions,
	  ArchPerfmonExt is valid, WRMSRNS instructions, AMX-FP16, AVX-IFMA,
	  RDMSRLIST & WRMSRLIST.
	* cpuid.c: Added 7/1/edx AVX-VNNI-INT8, AVX-NE-CONVERT, PREFETCHIT*
	  instructions.
	* cpuid.c: Added 0x12/0/eax SGX ENCLU EDECCSA flag.
	* cpuid.c: Added 0x23 Architecture Performance Monitoring Extended leaf
	  decoding.
	* cpuid.c: Corrected AVX512IFMA description: integer FMA, not just FMA.

Tue Sep 27 2022 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Tue Sep 27 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for (10,15),(6,1) Raphael, based on
	  instlatx64 samples.

Wed Aug 17 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed missing return statement in get_nr_cpu_ids()'s default
	  case, used by Cygwin.  Thanks to Brian Inglis for reporting this.

Tue Aug 16 2022 Umio-Yasuno <coelacanth_dream@proton.me>
	* cpuid.c: Fixed title for AMD 0x8000001a leaf: Performance Optimization
	  Identifiers.

Fri Aug 12 2022 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Aug 12 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected (synth) decoding for (0,6),(8,6) Intel Snow
	  Ridge/Parker Ridge.  It had been lumped in with Elkhart Lake, but only
	  because that had been the only known core name for the Tremont uarch.
	  These appear to be different cores.  Also added steppings from SSG*.

Fri Aug  5 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 8000000a/edx X2AVIC flag, from Linux kernel patches
	  It appears to be undocumented, so far.

Thu Aug  4 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Improved (synth) decoding for (0,6),(9,7),2, adding
	  Added Alder Lake-HX.

Wed Jul 27 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Reverted May 27 2022 split of 7/0/ebx hack to report bit 22
	  as RDPID on AMD architectures.  The AMD documentation is inconsistent
	  on the location of this flag.  In E.3.6, it claims 7/0/ebx.  But in
	  section 3, the RDPID instruction itself claims 7/0/ecx, as does the
	  mention in Table 3-1.  This also is consistent with Intel
	  architectures.  Thanks to Stefan Kanthak for pointing this out.

Mon Jul 25 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Generalized (0,6),(8,14),9,YP stepping case to include
	  Pentium 4425Y, from instlatx64 sample.

Thu Jul 14 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated 7/0/edx comments to reflect original info source
	  for SRBDS mitigation MSR available, previously just marked LX*.
	* cpuid.c: Updated 7/0/edx comments to reflect original info source
	  for RTM transaction always aborts, previously just marked LX*.
	* cpuid.c: Added (vuln to branch type confusion synth) synthetic leaf
	  to correct for the one known inaccuracy.
	* cpuid.man: Added those two original source web pages from Intel:
	  Intel Transactional Synchronization Extensions (Intel TSX) Memory and
	  Performance Monitoring Update for Intel Processors (Article ID
	  000059422), Special Register Buffer Data Sampling.

Wed Jul 13 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000008/ebx not vulnerable to branch type confusion
	  flag from "Technical Guidance For Mitigating Branch Type Confusion
	  (White Paper)".  Also added a synthetic flag to correct the special
	  case for Family 0x19, where the raw flag is documented to be wrong.
	* cpuid.c: Added 7/2/edx indirect branch prediction related flags from
	  Intel's "Branch History Injection and Intra-mode Branch Target
	  Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598".
	* cpuid.c: Added (uarch synth) decoding for (0,6),(6,14) Cougar
	  Mountain, mentioned as Airmont by Intel's "Retpoline: A Branch Target
	  Injection Mitigation".
	* cpuid.man: Added "Branch History Injection and Intra-mode Branch Target
	  Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598" and
	  "Retpoline: A Branch Target Injection Mitigation".

Tue Jul 12 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified (synth) for (0,6),(8,13) Tiger Lake-H from SSG*.

Tue Jul 12 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added support for hypervisor+3/ecx (Microsoft) flags.
	* cpuid.c: Added support for hypervisor+0xa/eax (Microsoft) VMCS
	  GuestIa32DebugCtl support flag.
	* cpuid.c: Added support for hypervisor+0xa/ebx (Microsoft) VMCS
	  HvFlushGuestPhysicalAddress* flag.

Wed Jun 29 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) for (0,6),(11,10),3 Raptor Lake-P Q0, from
	  Coreboot*.

Sat Jun 25 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Lionel Debroux's patch used MAX_CPUS all the time.  But it
	  really was meaningful only for the USE_KERNEL_SCHED_SETAFFINITY case
	  (although, by happenstance, it may have been correct for all three
	  cases).  Replace this with an nr_cpu_ids global, determined by
	  get_nr_cpu_ids().  The simplest version just returns
	  sysconf(_SC_NPROCESSORS_CONF), although that could be problematic on
	  systems with non-contiguous CPU numbers.
	* cpuid.c: For USE_KERNEL_SCHED_SETAFFINITY, improve this, and also
	  support systems with > 1024 CPUs, by estimating nr_cpu_ids using a
	  power-of-2 walk through successively larger cpu_set_t sizes until
	  sched_getaffinity succeeds.
	* cpuid.c: For systems using cpu_set_t (only Cygwin?), cap the
	  nr_cpu_ids to CPU_SETSIZE.
	* cpuid.c: The _SC_NPROCESSORS_CONF check in real_setup() is removed
	  because it's redundant now.

Wed Jun 22 2022 Lionel Debroux <lionel_debroux@yahoo.fr>
	* cpuid.c: In do_real() and do_real_one(), avoid breaking out of loop
	  because of downed CPUs.

Mon Jun 20 2022 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sat Jun 18 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) for (0,6),(9,7),1 Alder Lake-S B0 from
	  Coreboot*.
	* cpuid.c: Added (synth) stepping name for (0,6),(9,7),4 Alder Lake-U G0
	  from Coreboot* (although this dubiously mixes partly contradictory
	  info from two sources).
	* cpuid.c: Added (synth) stepping name for (0,6),(9,7),5 Alder Lake-S H0
	  from Coreboot*.
	* cpuid.c: Added hypervisor+4/eax (Xen) upcalls with physical IRQ
	  vectors from Xen*.
	* cpuid.c: Added hypervisor+{0x80,0x81,0x82} (Microsoft) synthetic
	  debugging leaves.
	* cpuid.c: Eliminated print_header(), and distributed those headers
	  throughout print_reg(), frequently using the try (subleaf) number to
	  ensure they are printed only once.  Many headers already were like
	  this, and it makes them more consistent.

Sun Jun 12 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed (synth) for Alder Lake-S to remove K/KF suffixes,
	  because other suffixes (or no suffix) are available too.
	* cpuid.c: Added (synth) for (0,6),(9,7),5 Alder Lake-S.
	* cpuid.c: Added (synth) for (0,6),(9,7),3 Alder Lake-P/H.
	* cpuid.c: Added (synth) for (0,6),(9,7),4 Alder Lake-U.

Sat Jun 11 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0xf/1/eax QoS monitoring counter size, both in raw
	  form (-24 notation) and as a synthetic leaf the determines the
	  value from the raw form and family/model information.
	* cpuid.c: Added stash information to print_header() to avoid printing
	  Xen-only headers for hypervisor+3 leaves of other hypervisors.
	* cpuid.c: Rewrote the handling of subleaves (tries) for legacy raw
	  input files.  Originally, I thought I only needed this support for
	  those leaves which existed during that legacy period.  But the
	  testbeds lean on that support for samples from instlatx64.  So now
	  it's more general.
	* cpuid.c: For leaf 0x80000020, rewrote the rules for subleaf processing
	  based on the description in AMD64 Technology Platform Quality of
	  Service Extensions (pub 56375 1.03): walk the bits in the mask.
	* cpuid.c: Added 0x80000020/0/ebx bits 2 & 3, and renamed bit 1.
	* cpuid.c: Added 0x80000020/1 subleaf header.
	* cpuid.c: Added 0x80000020/2 subleaf.
	* cpuid.c: Added 0x80000020/3 subleaf.
	* cpuid.man: Added 56375: AMD64 Technology Platform Quality of Service
	  Extensions

Fri May 27 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x8000001f/eax virtual TSC_AUX supported, from Linux
	  kernel.
	* cpuid.c: Split 7/0/ebx decoding into Intel-specific & AMD-specific
	  versions (using ugly macro to avoid code duplication), differing by
	  bit 22: PCOMMIT (intel) vs. RDPID/TSC_AUX (amd).

Wed May 25 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000022/eax AMD perfmon V2, from Linux kernel.

Tue May 24 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x21 TDX guest leaf, as ASCII text
	  (e.g. "IntelTDX    ").

Sat May 21 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed (synth) for AMD (10,15),(5,*) Cezanne to also mention
	  Barcelo, because instlatx64 samples show that they seem to be
	  indistinguishable from cpuid information.

Tue May 17 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for stepping (0,6),(11,10),2
	  Raptor Lake-P J0 from Coreboot*.

Tue May  3 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added 344425, "Architecture Specification: Intel Trust
	  Domain Extensions (Intel TDX) Module".
	* cpuid.c: Removed 7/0/ecx bus lock detection LX*, Qemu* comment,
	  because it now is documented in the above.
	* cpuid.man: Added 343754, "Intel Trust Domain CPU Architectural
	  Extensions".
	* cpuid.c: Added 0x12/0/eax bit 7: EVERIFYREPORT2 support, from the
	  above.

Tue May  3 2022 Stefan Kanthak <stefan.kanthak@nexgo.de>
	* cpuid.c: Corrected spelling of 7/0/ecx "RDPID: read processor ID
	  supported".

Mon May  2 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified (synth) decoding for (10,15),(11,14) Alder Lake-N,
	  based on LX*. Also added A0 stepping.
	* cpuid.c: Added defined() checks around uses of __GNUC__,
	  __GNUC_MINOR__, and __GNUC_PATCHLEVEL__, as suggested by Stefan
	  Kanthak.
	* Makefile: Added -Wundef to compilation options to check the above,
	  although they always are defined with gcc.
	* cpuid.c: To simplify the new #if's for __builtin_clzl, added new
	  USE_BUILTIN_CLZL macro.

Sat Apr 30 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (10,15),(0,1),2 Milan B2 stepping.

Tue Apr  5 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed (0,6),(9,10) Alder Lake synth decoding stepping names,
	  based on Coreboot*, evidently from Intel doc 626774.  I cannot find
	  that document.  Perhaps it is under NDA.
	* cpuid.c: Added (0,6),(1,9) ZhangJiang synth & uarch decoding from
	  Google_cpu_features*.
	* cpuid.c: Added (0,7),(1,11) WuDaoKou synth & uarch decoding from
	  Google_cpu_features*.  Also corrected (0,7),(0,11) uarch decoding.
	* cpuid.c: Added (0,7),(3,11) LuJiaZui uarch decoding from
	  Google_cpu_features*.  Also simplified its synth decoding.
	* cpuid.c: Added (0,7),(5,11) YongFeng synth & uarch decoding from
	  Google_cpu_features*.  Still somewhat speculative.

Fri Mar 25 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added hypervisor+4/eax (Microsoft) bits 15, 17, 18.
	* cpuid.c: Added hypervisor+4/ecx (Microsoft) leaf.
	* cpuid.c: Added many hypervisor+6/eax (Microsoft) fields.
	* cpuid.c: Added hypervisor+0xa/eax (Microsoft) bit 22.
	* cpuid.c: Added hypervisor+3/ebx (Microsoft) Isolation flag, from Linux
	  kernel (arch/x86/include/asm/hyperv-tlfs.h).
	* cpuid.c: Added hypervisor+0xc/{eax,ebx} (Microsoft) leaves, from Linux
	  kernel (arch/x86/include/asm/hyperv-tlfs.h).

Fri Mar 18 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected (synth) for (0,6),(9,10) Alder Lake to report Core
	  where appropriate, instead of Atom always.  In fact, I've seen zero
	  instances of Atoms with this core, so perhaps this was an early
	  misunderstanding.  The (0,6),(9,7) Alder Lake-S core was added at the
	  same time, also as an Atom, but was corrected much earlier.  So I've
	  made the same correction here.

Sat Mar 12 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (8,15),(9,0),2 Van Gogh A2 from
	  instlatx64 sample.

Thu Mar 10 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (0,6),(10,10),{0-1} A0 steppings,
	  based on info from Coreboot*.

Thu Feb 24 2022 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Feb 23 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) and (uarch synth) decoding for AMD Rembrandt E1.

Sat Feb 19 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added hypervisor+4/eax (Xen) expanded destination id bit.

Mon Jan 17 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Removed bogus 7/1/eax bit 24 "AMX tile support".  The only
	  claim for that was an inaccurate comment in the linux kernel, added
	  2-Nov-2021, but the actual bit is in 7/0/edx, which already was
	  present in cpuid.

Sun Jan  9 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Renamed 6/eax bit to 23 to mention Thread Director.
	* cpuid.c: Widened 6/ecx number of enh hardware feedback classes from
	  bits 8-11 to bits 8-15.
	* cpuid.c: Renamed 7/1/eax bit to 10 to include "fast".
	* cpuid.c: Added 7/1/ebx decoding.
	* cpuid.c: Added 0x14/0/ebx decoding for support for IA32_RTIT_CTL
	  EventEn & DisTNT bits.
	* cpuid.c: Added synth decoding for (0,6),(11,15) Alder Lake, based on
	  MSR_CPUID_table*.
	* cpuid.c: Confirmed synth decoding for (0,6),(10,8) Rocket Lake.

Tue Jan  4 2022 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) steppings based on instlatx64 samples:
	  1,(0,5),(0,3),2 P24T C0, (0,6),(0,2),2 K75/Pluto/Orion A2,
	  (0,6),(4,6),1 Crystal Well C1, (0,6),(7,14),5 Ice Lake-U/Y D1,
	  (0,6),(9,7),2 Alder Lake-S C0, (0,6),(10,7),1 Rocket Lake B0.
	* cpuid.c: Corrected missing Core name for (0,6),(9,7) Alder Lake-S A0
	  stepping.

Mon Dec 13 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In 0x18 leaves, line up values better.

Fri Dec 10 2021 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Dec 10 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Reorganized loop over 0x12 subleaves in do_real().  The old
	  code assumed validity was at least partially determined by a bitmask
	  in subleaf 0 (like for leaf 0x10), but that was wrong.  Thanks to
	  Scott Raynor for pointing this out.
	* cpuid.c: Added code for 0x12/(n>=2) subleaves to show invalid cases as
	  such, instead of resorting to a raw dump.
	* cpuid.c: Fixed missing loop over 0x1b subleaves in do_real().  This
	  might become necessary if more target identifiers are added.
	* cpuid.c: Added print_1b_n_target() to decode the MKTME target
	  identifier.
	* cpuid.c: Modified leaf 4 subleaf loop to include the terminating
	  "no more caches" subleaf.  Modified print_reg() to abbreviate
	  "no more caches" subleaves.
	* cpuid.c: Cleaned up loops for leaves 7, 0x14, 0x17, 0x18, 0x1d, 0x20
	  subleaves: max_tries (from subleaf 0) is available before the loop
	  starts.
	* cpuid.c: Modified leaf 0xb subleaf loop to exit for the right reason,
	  level type == 0.  Also, it includes the terminating "invalid" subleaf.
	  The similiar 0x1f leaf already did this.

Mon Nov 29 2021 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Nov 26 2021 Todd Allen <todd.allen@etallen.com>
	* From AMD Programmer's Manual, Vol 3, Rev 3.33, Appendix E:
	* cpuid.c: Added 0x80000008/ebx CPU prefers: IBRS always on.
	* cpuid.c: Renamed 0x80000008/ebx CPU prefers: STIBP always on.
	* cpuid.c: Renamed 0x80000008/ebx INVLPGB supports TLB flush guest
	  nested.
	* cpuid.c: Added 0x8000001f/eax Secure TSC supported.
	* cpuid.c: Added 0x8000001f/eax VMSA register protection.
	* cpuid.c: Added 0x80000021/eax upper address ignore support.
	* cpuid.c: Added 0x80000021/eax SMM_CTL MSR not supported
	* cpuid.c: Added 0x80000021/ebx.
	* cpuid.c: Added 0x80000022/ebx.

Mon Nov 22 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Correct (uarch synth) phys for Cascade Lake to 14nm++.
	* cpuid.c: Correct (uarch synth) phys for Cooper Lake to 14nm++.

Sun Nov 21 2021 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Nov 21 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Removed __LARGE64_FILES from __CYGWIN__, per Brian Inglis'
	  request.
	* cpuid.c: Renamed macros with names starting with underscores, which
	  are resered names in C: __THING -> MaskTHING, _THING -> ShftTHING.
	  Brian Inglis says this was an actual practical problem in Cygwin.
	  This change makes the code less dense, but a bit easier to understand.

Sat Nov 20 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Distinguish (synth) decoding: AMD (8,15),(2,0) Dali CPUs:
	  Ryzen vs. other.
	* cpuid.c: Added to (synth) decoding: AMD Ryzen 1000/2000/3000/4000/5000
	  series numbers.
	* cpuid.c: Added to (synth) decoding: AMD Epyc Gen numbers.
	* cpuid.c: Distinguish (synth) decodings for Threadripper CPUs.  For
	  Zen & Zen+, only the brand distinguishes; for Zen 2 (and rumored for
	  Zen 3), there are distinct models.
	* cpuid.c: Distinguish (synth) decoding between Great Horned Owl & Banded
	  Kestrel.
	* cpuid.c: Distinguish (synth) decoding for Grey Hawk from Renoir.

Thu Nov 18 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) & (uarch synth) decoding for (0,6),(11,14)
	  Golden Cove (Alder Lake) from Coreboot*.
	* cpuid.c: Added (synth) & (uarch synth) decoding for (0,6),(6,7)
	  Palm Cove (Cannon Lake) from DPTF*.
	* cpuid.c: Added (synth) & (uarch synth) decoding for (0,6),(10,11)
	  Redwood Cove (Meteor Lake-N) from DPTF*.
	* cpuid.c: Added (synth) & (uarch synth) decoding for (0,6),(11,10)
	  Raptor Cove (Raptor Lake-P) from DPTF*.

Mon Nov 15 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (0,6),(11,7) Raptor Lake, from LX*.
	* cpuid.c: Updated (uarch synth) phys strings for Intel 14nm and 10nm
	  process nodes using 14nm+, 14nm++, 14nm+++, 10nm+, 10nm++.

Sun Nov 14 2021 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Nov  8 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated (uarch synth) for Bergamo to say "Zen 4c".

Fri Nov  5 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for Pentium Gold G5420 (0,6),(9,14),10,
	  based on a sample from Andrey Rahmatullin.  Previously, I knew only of
	  variants with stepping 11.
	* cpuid.c: Renamed Golden Cove & derivatives phys (physical properties)
	  to use new Intel 7 branding.  Likewise for the preliminary Redwood
	  Cove & Granite Rapids and Intel 4.

Thu Nov  4 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for AMD Storm Peak (preliminary).
	* cpuid.c: Added (synth) decoding for Intel (0,6),(10,8) (preliminary).
	* cpuid.c: Added (synth) decoding for Intel (0,6),(10,10) (preliminary).
	* cpuid.c: Added (synth) decoding for Intel (0,6),(10,12) (preliminary).
	* cpuid.c: Added (synth) decoding for Intel (0,6),(10,13) (preliminary).
	* cpuid.c: Added (synth) decoding for Intel (0,6),(9,15) (preliminary).
	* cpuid.c: Added Cougar Mountain name to Intel Puma 7, from MRG
	  2018-Mar-6.

Wed Nov  3 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for AMD Lucienne A1 stepping.
	* cpuid.c: Added (synth) decoding for AMD Van Gogh (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Mero (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Mendocino (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Chagall (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Badami (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Rembrandt (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Genoa (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Raphael (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Phoenix (preliminary).
	* cpuid.c: Added (synth) decoding for AMD Bergamo (preliminary).

Wed Nov  3 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added hypervisor+3/edx (Microsoft) new fields.
	* cpuid.c: Added hypervisor+7/eax (Microsoft) new field.
	* cpuid.c: Added hypervisor+7/ecx (Microsoft) new field.
	* cpuid.c: Added hypervisor+0xa/eax (Microsoft) new field.

Wed Nov  3 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated (synth) decoding for Alder Lake-S to include Core
	  variants.
	* cpuid.c: Added (synth) and (uarch) decoding for VIA/Centaur CHA (CNS).

Tue Nov  2 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/1/eax AMX tile support, from Linux kernel.

Sun Oct 31 2021 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Oct 31 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Support hypervisors which can move their range of leaves
	  to other base addresses, to support hypervisors under other
	  hypervisors: IS_HYPERVISOR_LEAF(), print_hypervisor_*().
	* cpuid.c: Separated out get_hypervisor().  This ended up being
	  unnecessary, but I prefer it anyway.
	* cpuid.c: Added print_esc_substring() to print hypervisor_id values
	  that contain non-graphic characters.

Fri Oct 29 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Improved (synth) decoding for Intel Xeon (3rd Gen) D2/M1
	  steppings.

Wed Oct 27 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x40000001/eax support for ACRN hypervisor.  Untested.
	* cpuid.c: Added better decoding of 0x12/1 SECS.ATTRIBUTES fields.

Tue Oct 26 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 5,3 model for Cyrix M1 6x86, based on Cyrix 6x86
	  Processor, Instruction Set document (M1-6).
	* cpuid.c: Corrected wrong register passed to
	  print_40000009_edx_microsoft().

Mon Oct 25 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Adapted patch from Brian Inglis for easier Cygwin cygport,
	  but made an effort to reduce duplicate header file references, and
	  use of <sys/cpuset.h> for the right reasons (i.e. a more general
	  change).
	* cpuid.c: For 12/n/ebx & 12/n/edx (n >= 2), mask the high 12 bits.
	* cpuid.c: Added 0x40000001/eax(KVM) map gpa range hypercall &
	  MSR_KVM_MIGRATION_CONTROL.

Sun Oct 24 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Add (synth) decoding for additional Alder Lake steppings.
	* cpuid.c: Generalize (synth) decoding for Elkhart Lake B0.
	* cpuid.c: Added 0x8000000a/edx guest SVME addr check.
	* cpuid.c: Added 7/0/ecx bus lock detection.
	* cpuid.c: Added 7/0/edx RTM transaction always aborts, TSX_FORCE_ABORT.
	* cpuid.c: Added 0x40000001/eax (KVM) extended destination ID.
	* cpuid.c: Added (synth) decoding for Vortex86EX2 & Vortex86DX2.  Info
	  on these is almost nonexistent, so it's possible that these rules are
	  too specific or too vague.
	* cpuid.c: Improved (synth) decoding for Tiger Lake: Pentium & Celeron.
	* cpuid.c: Improved (synth) decoding for Elkhart Lake: Pentium & Celeron.
	* cpuid.c: Improved (synth) decoding for Jasper Lake: Pentium & Celeron.
	* cpuid.c: Improved (synth) decoding for (0,6)(10,5) Comet Lake:
	  Pentium, Celeron & Xeon.
	* cpuid.c: Improved (synth) decoding for (0,6),(6,10) Ice Lake:
	  Xeon Scalable.
	* cpuid.c: Improved (synth) decoding for AMD (8,15),(1,1) Raven Ridge:
	  Athlon Pro 200.
	* cpuid.c: Improved (synth) decoding for AMD (8,15),(1,8) Picasso:
	  Athlon Pro 300.
	* cpuid.c: Added (synth) decoding for AMD 4700S Desktop Kit.
	* cpuid.c: Added (synth) decoding for AMD (8,15),(4,7) Lucienne.

Sun Oct 24 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x80000008/ecx tscSize.
	* cpuid.c: Added 0x8000001c/{eax,edx} continuous mode sampling.
	* cpuid.c: Added 0x8000001c/{eax,edx] tsc in event record.
	* cpuid.c: Added (synth) decoding for AMD Milan B1.
	* cpuid.c: Added (synth) decoding for AMD Vermeer.
	* cpuid.c: Added (synth) decoding for AMD Cezanne.

Sat Oct 23 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Renamed 7/0/ecx 5-level paging to include LA57 & 57-bit addrs.
	* cpuid.c: Improved 0xa/ebx presentation, and automatically mask bits
	  marked as invalid by 0xa/eax vector length.
	* cpuid.c: Added 0x12/n/ecx new section property encoding.
	* cpuid.c: Renamed Rocket Lake uarch to Cypress Cove.
	* cpuid.c: Improved (synth) decoding for Tiger Lake.
	* cpuid.c: Improved (synth) decoding for Rocket Lake.

Fri Jul 16 2021 Ani Sinha <ani@anisinha.ca>
	* cpuid.c: Add support for 0x40000003/eax reenlightenment control MSR
	  & 0x40000003/eax TscInvariant control MSR [on Microsoft Hyper-V].

Fri Jul 16 2021 Smita Koralahalli Channabasappa <Smita.KoralahalliChannabasappa@amd.com>
	* cpuid.c: restoring the deleted "AMD (unknown model)" entry.

Mon Jul 12 2021 Smita Koralahalli Channabasappa <Smita.KoralahalliChannabasappa@amd.com>
	* cpuid.c: updates the existing leaf and subleaf in the CPUID with
	  features related to INVLPGB, CPPC, PSFD, SEV [affects 0x80000008/edx,
	  0x80000008/edx, and 0x8000001f/eax].
	* cpuid.c: defines new leaf 80000021/eax.
	* cpuid.c: replaces the naming "Unknown Model" -> "AMD EPYC Milan" for
	  Family 19h and Model 01h [affects (synth) decoding].

Tue Feb  2 2021 Jonathan Teh <jonteh@ntlworld.com>
	* From http://datasheets.chipdb.org/Cyrix/112ap.pdf (page 7, table 1):
	* cpuid.c: Cyrix family 4 model 4 should be MediaGX or GXi
	* cpuid.c: GXm is family 5, model 4
	* cpuid.c: Cyrix MediaGX is derived from the 5x86 and unrelated to the
	  WinChip C6. Based on Wikipedia, the MediaGXm was renamed the Geode GXm
	  after it was sold to National Semi but the CPUs appear to have
	  continued to be sold under the Cyrix vendor up to and including the
	  Geode GX1. Hence, I've simply duplicated the names from NSC model 4
	  into Cyrix.
	* cpuid.c: Model 9 for the WinChip 3 is moved to the Centaur section
	  [decode_synth_via()], from the datasheet page 3-11:
	  http://datasheets.chipdb.org/IDT/x86/WinChip3/winchip_3_datasheet.pdf
	* cpuid.c: The Cyrix CPU detection guide [112ap] also offers some
	  possible codenames from page 20, table 17 Cx486SLC/DLC/SRx/DRx (M0.5)
	  up to table 26 for the GXm.

Mon Jan  4 2021 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected decode_amd_model()'s (0,15),(4,0) decodings for bti
	  values 0x29, 0x2a, and 0x2b.
	* cpuid.c: Corrected wrong register passed to print_40000001_edx_kvm().

Mon Nov  2 2020 Brian Inglis <Brian.Inglis@SystematicSw.ab.ca>
	* Makefile: Set BUILDROOT=$(DESTDIR) for easier Cygwin cygport support.

Mon Oct 12 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) decoding for (6,15),(3,0) AMD R-Series Bald
	  Eagle based on instlatx64 sample.
	* cpuid.c: Added rudimentary synth & uarch decoding for Montage Jintide
	  Gen1, a CPU based on Intel Skylake (0,6),(5,5), and detectable by brand
	  string.
	* cpuid.c: Fixed append_uarch() to pass stash, which improves uarch
	  [suffix] for Montage, Zhaoxin, and ZhangJiang CPUs.

Tue Oct  6 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Tue Oct  6 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 6/eax enhanced hardware feedback interface.
	* cpuid.c: Added 6/ecx number of enh hardware feedback classes.
	* cpuid.c: Added 7/0/ecx KL: key locker.
	* cpuid.c: Added 7/0/edx UINTR: user interrupts.
	* cpuid.c: Added 7/0/edx AVX512_FP16: fp16 support.
	* cpuid.c: Added 7/1/eax AVX-VNNI: AVX VNNI neural network instrs.
	* cpuid.c: Added 7/1/eax zero-length MOVSB.
	* cpuid.c: Added 7/1/eax fast short STOSB.
	* cpuid.c: Added 7/1/eax fast short CMPSB, SCASB.
	* cpuid.c: Added 7/1/eax HRESET: history reset support.
	* cpuid.c: Added 0xa/ecx fixed counter support enumeration.
	* cpuid.c: Added 0xd/0/eax IA32_XSS UINTR state.
	* cpuid.c: Added 0xd/n UINTR feature.
	* cpuid.c: Added 0x19 key locker features.
	* cpuid.c: Added 0x20 HRESET features.

Mon Oct  5 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (7,5),(2,6) AMD Cato (synth) decoding based on
	  instlatx64 example (possibly an engr sample).

Sun Oct  4 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected 6/edx size field to use minus-one notation.
	* cpuid.c: Added 7/0/edx AMX flags.
	* cpuid.c: Added 0xd XTILECFG & XTILEDATA features.
	* cpuid.c: Added 0xd/1/eax XFD: extended feature disable supported flag.
	* cpuid.c: Added 0xd/n/ecx XFD: faulting supported flag.
	* cpuid.c: Added 0x18/0/edx: load-only TLB & store-only TLB encodings.
	* cpuid.c: Added 0x1d leaf (Tile info) decoding.
	* cpuid.c: Added 0x1e leaf (TMUL) decoding.
	* cpuid.c: Added 0x1c leaf (architectural LBR) decoding.
	* cpuid.c: Added 0xd LBR features.

Sun Oct  4 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (synth) steppings for Comet Lake (0,6),(10,6) CPUs.
	  For the first time in a long time, Intel actually provided this in
	  the revision guide (615213)!
	* cpuid.c: Corrected (synth) decoding for AMD (8,15),(2,0) Dali CPUs.
	* cpuid.c: Added (synth) decoding for AMD Dali A1 stepping.
	* cpuid.c: Added (synth) decoding for AMD Picasso A1 stepping.
	* cpuid.c: Added (synth) decoding for AMD Renoir A1 stepping.

Sat Oct  3 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/0/ecx PKS flag.
	* cpuid.c: Added 7/0/edx SRBDS flag, from Linux kernel.
	* cpuid.c: Added 7/0/edx LBR flag.
	* cpuid.c: Added 0xd/0/eax IA322_XSS HWP state flag.
	* cpuid.c: Added synth decoding for Rocket Lake.
	* cpuid.c: Added synth decoding for Elkhart Lake B0.
	* cpuid.c: Added synth decoding for Alder Lake [Golden Cove].
	* cpuid.c: Clarified synth decoding for (0,6),(8,10) Lakefield.
	* cpuid.c: Added KVM interrupt-based page-ready APF event flag.

Sat Aug  8 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected 0x20000001/edx header.
	* cpuid.c: Detect bogus 0x20000000 leaf values and cap the maximum
	  valid register for the 0x2xxxxxxx range to avoid absurdly long dumps
	  on old CPUs.

Mon Aug  3 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added bzero before cpuid instruction, in case the cpuid
	  instruction quietly fails.  This mostly is paranoia, but I don't see
	  how this ever could cause harm.

Mon Jun  8 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Tiger Lake-U B0 stepping, from coreboot.
	* cpuid.c: Added AMD (8,15),(2,0) Picasso model synth & uarch decoding.

Sun May 24 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Zhaoxin KX-6000 decoding that still claims the vendor
	  CentaurHauls.  Later Zhaoxin CPUs were supposed to use their own
	  vendor, but instlat64x showed an example that still used the old one.

Sat May 16 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added better (synth) decoding for Intel Comet Lake-H/S
	  Core i*-10000 CPUs, based on instlatx64 example and listings in
	  ark.intel.com.

Tue Apr 28 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x8000000a/edx INVLPGB/TLBSYNC hypervisor intercept
	  enable flag.

Mon Apr 27 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Apr 22 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for AMD Steppe Eagle/Crowned Eagle
	  (Puma 2014 G-Series), based on instlatx64 sample.

Thu Apr 16 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/0/edx SERIALIZE & TSXLDTRK bit descriptions.
	* cpuid.c: Added 0xf/1/eax Counter width & overflow flag.
	* cpuid.c: Added 0x10/3/ecx per-thread MBA controls flag.
	* cpuid.c: Added 0x8000001f fields.
	* cpuid.man: Added AMD 24594 & 40332 docs.

Tue Mar  3 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected field lengths in 14/0 and 14/1 subleafs so that
	  columns line up.

Thu Feb 27 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added CC150 (Coffee Lake R0) synth decoding, based on
	  instlatx64 example.

Wed Feb 26 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Jasper Lake A0 stepping (from Coreboot*).
	* cpuid.c: Updated 1/ebx "cpu count" to modern terminology: "maximum
	  addressible IDs for CPUs in pkg" to avoid user confusion.  It was a
	  reliable count of the number of CPUs for only a split second some time
	  around 2002.  Maybe.
	* cpuid.c: Updated 4/eax CPU & core count terminology in the same way.

Tue Feb 11 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Feb 10 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified Intel NNP-I (Spring Hill).
	* cpuid.c: In decode_vendor(), report "Zhaoxin" even with VENDOR_VIA,
	  if the brand string indicates so.
	* cpuid.c: In 0xc0000004/ebx, make current voltage use the shift-4 + 700
	  encoding used for other VIA voltages.

Fri Feb  7 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Use both Intel doc numbers for 329671/600827.
	* cpuid.man: Added missing 329901/600834 Intel doc.

Thu Feb  6 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added VIA 0xc0000004 leaf decoding.
	* cpuid.c: Added X2_IMAGES special flag to pretty-print values in the
	  2X encoding.
	* cpuid.c: Added MINUS1_IMAGES special flag to pretty-print values with
	  the "- 1" encoding.  (I finally got turned around about this being
	  better than the older "raw" values.)

Wed Feb  5 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Add VIA C7-D and Eden brands to (0,6),(0,10) (synth).
	* cpuid.c: Differentiate VIA (0,6),(0,13) (synth) based on brand strings.
	* cpuid.c: Overhaul of VIA 0xc0000002 leaf decoding.
	* cpuid.c: Updated VIA Nano steppings (synth).
	* cpuid.c: Removed extraneous WinChip & core words from C3 and later
	  VIA CPUs (synth).

Wed Feb  5 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed mp_synth fields to use '=' separator instead of ':',
	  like every other value.
	* cpuid.c: Changed processor serial number to use '=' separator instead
	  of ':', like every other value.

Tue Feb  4 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added 336907 doc with 7/0/ecx/TME bit description.
	* cpuid.c: Removed LX* comment from 7/0/ecx/TME bit description.  It's
	  documented after all.

Tue Feb  4 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified (0,6),(10,6) Comet Lake-U (synth).

Mon Feb  3 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Feb  3 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Removed comments about (0,6),(8,14),10 contradiction.
	  Coreboot* removed the incorrect code claiming it was Coffee Lake D0.
	  The actual code already reflected this resolution.
	* cpuid.c: Removed now-redundant lines from decode_uarch_intel() for
	  the individual (0,6),(8,14) steppings.  They all say Kaby Lake now,
	  so they aren't necessary.
	* cpuid.c: Added (0,6),(4,14),8 Kaby Lake G0 and (0,6),(5,14),8
	  Kaby Lake-H A0 steppings to both (synth) and (uarch synth) that I found
	  in Coreboot*.  I realized I was worrying too much about them.  They are
	  at least wholly distinct steppings, so they don't constitute the
	  intra-stepping blurring that I saw with {Kaby,Amber,Whiskey,Comet}
	  Lake.  They are more akin to the already-existing Cascade Lake &
	  Cooper Lake steppings.  Perhaps those two new entries were just early
	  engineering samples for Kaby Lake.
	* cpuid.c: Added (0,6),(9,14),13 stepping to decode_uarch_intel.  The
	  fallback without a stepping is weak, and it should be avoided for
	  any actual known stepping.  (Added a comment too.)
	* Makefile: Changed my own Todd's Development rules to build on very old
	  systems, so that the executables will run at all on very old systems.
	* Makefile: Changed -Wextra to -W.  That isn't recommended on modern
	  gcc versions, but still works.  And it is necessary on really old
	  gcc versions, because -Wextra produces a hard error.

Sun Feb  2 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Feb  2 2020 Todd Allen <todd.allen@etallen.com>
	* Makefile, cpuid.proto.spec: Added FAMILY.NOTES to the list of files to
	  be included in tarball & rpm doc directory.  That file still is messy,
	  but I reference it a lot, so maybe it will be useful to others too.

Sun Feb  2 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added old (synth) models from sandpile.org: AMD Elan SC400,
	  NSC Geode LX.
	* cpuid.c: Added some old (synth) and (uarch synth) die process numbers
	  from sandpile.org.
	* cpuid.c: Added stepping values from sandpile.org.
	* cpuid.c: sandpile.org calls (0,6),(4,6) "Crystalwell".  Arguably, that
	  is just the name of the L4 cache.  But even Intel's ARK calls these
	  CPUs "Crystal Well".  So I'm changing the name to "Crystal Well".  The
	  uarch still is Haswell, so that should clarify any confusion.
	* cpuid.c: sandpile.org calls (0,6),(4,7) "Brystalwell".  The situation
	  is similar, but Intel does not use that name at all.  I'm not renaming
	  these cores.

Sun Feb  2 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added leaf walking of the 0x20000000 (Intel Phi) range and
	  decoding of a single bit in 0x20000001, based on information in
	  sandpile.org.  I found only a vague hint about this in the Intel Xeon
	  Phi Coprocessor System Developers Guide, but no details.
	* cpuid.c: For the (0,11) family of Phi processors, placing them within
	  a K1OM family.  The (0,6) Phi cores are just Airmont-derived, so left
	  them alone.

Sat Feb  1 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Reverted Cedar Trail back to Cedarview.  (Atom uArch name vs.
	  Core name vs. Platform name vs. SoC name is very confusing.)

Sat Feb  1 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Broadwell (0,6),(3,13) steppings based on Coreboot*.
	* cpuid.c: Added Haswell (0,6),(3,12) steppings based on Coreboot*.
	* cpuid.c: Added Haswell-ULT (0,6),(4,5),0 stepping based on Coreboot*.
	* cpuid.c: Added some Skylake (0,6),(4,14) steppings based on Coreboot*.
	* cpuid.c: Added some Skylake (0,6),(5,14) steppings based on Coreboot*.
	* cpuid.c: Added Kaby Lake-H (0,6),(9,14),9 stepping based on Coreboot*.
	* cpuid.c: Added Cannon Lake (0,6),(6,6) steppings based on Coreboot*.
	* cpuid.c: Added Apollo Lake (0,6),(5,12) A0 stepping based on Coreboot*.
	* cpuid.c: Added Gemini Lake (0,6),(7,10) A0 stepping, and corrected
	  R0 stepping, based on Coreboot*.
	* cpuid.c: Added Ice Lake-U/Y (0,6),(7,14) A0 stepping based on
	  Coreboot*, and disregarding inconsistent info from spec update.
	* cpuid.c: Added Tiger Lake (0,6),(8,12) A0 stepping based on Coreboot*.
	* cpuid.c: Added Elkhart Lake (0,6),(9,6) A0 stepping based on Coreboot*.
	* cpuid.c: Added Comet Lake (0,6),(10,6) steppings based on Coreboot*.
	* cpuid.c: Added Comet Lake-H/S (0,6),(10,5) steppings based on
	  Coreboot*.

Sat Feb  1 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added (uarch synth) decoding for (6,15),(0,0) Bulldozer,
	  based on engineering sample.
	* cpuid.c: Added (uarch synth) & (synth) (6,15),(6,0) Excavator Carrizo
	  and Toronto, based on instlatx64 samples.
	* cpuid.c: Added (uarch synth) decoding for (8,15),(0,0) Zen, based on
	  engineering sample.
	* cpuid.c: Added Zhaoxin (0,7),(1,15) based on example.
	* cpuid.c: Differentiate Zhaoxin ZhangJiang from VIA Isaiah [C7] in
	  (synth) and (uarch synth).  Sadly, this implies a need to use brand
	  information for (uarch synth).
	* cpuid.c: Addedd (synth) for VIA version of Zhaoxin ZhangJaing at
	  (0,7),(0,11).
	* cpuid.c: Added Westmere-EP A0 & B0 stepping (synth) based on instlatx64
	  sample & wikipedia article.
	* cpuid.c: Fixed bogus stepping in Centerton fallback (synth).
	* cpuid.c: Added (0,6),(5,5),10 Cooper Lake (synth) & (uarch synth),
	  based on Qemu.
	* cpuid.c: Added "AMD PRO A" as a 2nd string to detect AMD A-Series.
	* cpuid.c: Differentiate Raven Ridge from Great Horned Owl/
	  Banded Kestrel (synth), based on "Embedded" string in brand.
	* cpuid.c: Added Merlin Falcon as R-Series alternative everywhere
	  G-Series Brown Falcon appears.
	* cpuid.c: Added rules for EPYC Embedded to differentiate (synth) for
	  Snowy Owl and Naples, based on EPYC 3000 series.  Untested, because I
	  have no examples.

Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added instlatx64.atw.hu.
	* cpuid.man: Added -l and -s options.

Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added rudimentary (10,15) (synth) for AMD Zen 3.

Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added linux kernel note about intel-family.h.
	* cpuid.c: Added rudimentary Tremont (synth) & (uarch synth).
	* cpuid.c: Added tentative Ice Lake NNPI (synth) & (uarch synth).
	* cpuid.c: Added rudimentary (0,6),(10,6) Comet Lake [Coffee Lake]
	  (synth) & (uarch synth).

Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added Intel Microcode Update Guidance document.
	* cpuid.c: Removed br.generic check from dc (Core) query.  It was useful
	  in the Yonah era, but has been problematic since.  Instead, add a dG
	  (Generic) query and use that where needed for the Yonah CPUs.  And a
	  few other users of dc now use dG.
	* cpuid.c: Added (synth) for Apollo Lake D0 (collision with B0/B1?) & E0.
	* cpuid.c: Generalized P4500 & U4500 (Arrandale/Clarkdale) (synth) names.
	* cpuid.c: Added Broadwell-DE V3 (synth) alternate stepping.
	* cpuid.c: Added Broadwell H 43e (synth).
	* cpuid.c: Added Pentium 3700U / 3800U (synth).
	* cpuid.c: Added Apollo Lake (Broxton) (synth).
	* cpuid.c: Added Atom x5-E8000 (synth).
	* cpuid.c: Added Pentium G6900 (Clarkdale K0) (synth).
	* cpuid.c: Added Core i*-900 (Clarksfield) (query dc) (synth).
	* cpuid.c: Added E5-4600 (Ivy Bridge) (synth) names.
	* cpuid.c: Prefixed E to Jasper Forest Xeon (synth) names.
	* cpuid.c: Added Xeon E3-1200 (Kaby Lake) (synth) specific line.
	* cpuid.c: Added Xeon 6500 names to Beckon (synth).
	* cpuid.c: Generalized Pentium 900 (Sandy Bridge) (synth) names.
	* cpuid.c: Added Celeron T3000 / 900 / SU2300 (Wolfdale) (synth) names.
	* cpuid.c: Added Pentium T4000 (Wolfdale) (synth) names.
	* cpuid.c: Added Celeron M ULV 700 (Penryn) (synth).
	* cpuid.c: Correct query to dc for Sandy Bridge-E Core (synth).
	* cpuid.c: Added Pentium 1405 (Sandy Bridge-E) (synth).
	* cpuid.c: Added Xeon D-2100 (Skylake stepping 4) (synth) names.
	* cpuid.c: Added Core i9-7000X (Skylake-X) (synth).
	* cpuid.c: Changed case of x for SoFIA (synth).
	* cpuid.c: Simplified Westmere-EP Xeon (synth) names.
	* cpuid.c: Added Atom x*-A3900 (Apollo Lake) (synth) names.
	* cpuid.c: Added Rangeley core name to Atom C2000 (synth) names.
	* cpuid.c: Clarified that all (0,6),(4,15) CPUs are Broadwell-{E,EX}
	  in (synth) lines.
	* cpuid.c: Clarified that (0,6),(3,13) is Broadwell-U.
	* cpuid.c: For (0,6),(4,6) (synth), MRG* 2018-08-31 shows stepping 1,
	  so that must be the only known stepping: G0.
	* cpuid.c: Corrected Broadwell-Y Core M (synth).
	* cpuid.c: Added (0,6),(9,14),11 Coffee Lake Pentium & Celeron (synth).
	* cpuid.c: Corrected (0,6),(9,14),11 fallback (synth).
	* cpuid.c: Clarified transition from i*-8000 to i*-9000 at
	  (0,6),(9,14),12 stepping in (synth) lines.
	* cpuid.c: Added Puma 7 (synth).
	* cpuid.c: Generalized Pentium B900C (Ivy Bridge) (synth).
	* cpuid.c: Added Celeron G2000 (Haswell) (synth).
	* cpuid.c: Clarified Haswell-E (synth).
	* cpuid.c: Aded -4000 series to (0,6),(4,6) Core (synth) names.
	* cpuid.c: Added (0,6),(3,14) Ivy Bridge Celeron (synth).
	* cpuid.c: Corrected (0,6),(3,14) Cores as Ivy Bridge-E (synth).
	* cpuid.c: Differentiate i*-8700 and i*-7700 Kaby Lake (synth).
	* cpuid.c: Added (0,6),(8,14),9 Kaby Lake Pentium & Celeron (synth).
	* cpuid.c: Differentiate (0,6),(8,14),9 Kaby Lake-Y and Amber Lake-Y
	  (synth) with test for -8000 Series in brand name, because there seems
	  to be no other way to tell.
	* cpuid.c: Added XMM 7272 (SoFIA) (synth).
	* cpuid.c: Added Coffee Lake R0 Xeon (synth).
	* cpuid.c: Added Whiskey Lake W0 Pentium & Celeron (synth).
	* cpuid.c: Correct (8,14) (uarch synth) to just Kaby Lake once all
	  instances of Coffee lake had been eliminated from that family.  The
	  (9,14) family continues to include both Kaby Lake & Coffee Lake.

Fri Jan 31 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added Intel 600827 spec update.
	* cpuid.c: Generalized Bay Trail-M/D (synth) names and expanded them.
	* cpuid.c: Added Bay Trail-M/D D0/D1 (synth).

Thu Jan 30 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added VIA die processes for as many uarchs/cores as I could
	  find.

Wed Jan 29 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added comments about various Intel spec updates.
	* cpuid.man: Removed extra "315593" garbage line.
	* cpuid.c: Added (synth) for Broadwell-E R0 stepping.
	* cpuid.c: Added stepping number for Apollo Lake B0/B1.
	* cpuid.c: Differentiate (synth) between Core & Xeon (0,6),(3,15)
	  Haswell.
	* cpuid.c: Differentiate (synth) between Core & Xeon (0,6),(2,12)
	  Westmere/Gulftown.
	* cpuid.c: Simplified more (synth) i*-*000 combinations.
	* cpuid.c: Removed duplicate slash in one Haswell (synth) line.
	* cpuid.c: Correct Itanium Merced model/stepping confusion.
	* cpuid.c: Added KX-5000 & KH-20000 to Zhaoxin WuDaoKou (synth).
	* cpuid.c: Added die proess to Zhaoxin WuDaoKou (uarch synth).
	* cpuid.c: Added Zhaoxin LuJiaZiu (0,7),(3,11) model (synth) &
	  (uarch synth).

Tue Jan 28 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Differentiate (synth) between Bay Trail Pentiums, Celerons
	  & Atoms.
	* cpuid.c: Differentiate (synth) between Braswell Pentiums & Celerons.
	* cpuid.c: Corrected (synth) steppings for Braswell.
	* cpuid.c: Add J3000 series to (synth) for Braswell.
	* cpuid.c: Remove Pentium & Celeron items from {Kaby,Coffee,Comet} Lake
	  Core (synth).  I'd already created separate items for those, but
	  missed removing the names from the Core-specific line.

Mon Jan 27 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Jan 27 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed 0x8000001e/ecx to display nodes per processor in N-1
	  notation, after receiving confirmation from AMD that this is correct.

Sat Jan 25 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed spelling of (size synth).  I meant to always have
	  "synth" at the end of synthesized fields, and had that one flipped
	  around.
	* cpuid.c: Clarified AVX512_VNNI: neural network instructions.
	* cpuid.c: Clarified AVX512_VBMI2: byte VPCOMPRESS, VPEXPAND.
	* cpuid.c: Clarified AVX512_BF16: bfloat16 is a data format, not an
	  instruction.
	* cpuid.c: Added 7/0/edx md-clear feature, found from Xen & Qemu
	  hypervisors.
	* cpuid.c: Added 0x80000008/ebx ppin feature, found from Xen hypervisor.
	* cpuid.c: Added 0x40000001/eax (KVM) flags.
	* cpuid.c: Got rid of the Transmeta 0x80860001/eax family description,
	  which I missed when I got rid of all 1/eax families.  It wasn't so
	  egregious, but it wasn't very valuable either.  The Transmeta Crusoe
	  name already was in the (synth) leaf.
	* cpuid.c: Wrote a version of bits_needed() that uses __builtin_clz
	  with gcc 3.4 and later.
	* cpuid.c: Fixed bug with old asm-based bits_needed() function when the
	  input value was 0.

Sat Jan 25 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Further clarified descriptions in 0x8000001f leaf, based on
	  text in AMD64 Architecture Programmer's Manual, Vol 3, 3.28.  I had
	  missed these new fields in my earlier pass through the manual.
	* cpuid.c: Added comments for more undocumented fields, noting where
	  the information came from, particularly SKC*, LX*, and sandpile.org.
	* cpuid.c: Changed case of new descriptions.
	* cpuid.c: Created Synth_Family() & Synth_Model() macros based on
	  print_1_eax & SKC's AMD_Family() macro.
	* cpuid.c: Added (family synth) and (model synth) to 0x80000001/eax,
	  (AMD and Hygon variants), just like for 1/eax.
	* cpuid.c: Added Castle Peak B0 stepping (synth), now that I know the
	  stepping name.
	* cpuid.c: Changed 0x80000008/ebx "RDPRU instruction" field.
	* cpuid.c: Clarified 0x80000020 leaf descriptions based on AMD 55803 PPR.
	* cpuid.c: Modified print_apic_synth's bit width computations to reflect
	  change in terminology (core => thread, CU => core) in AMD Family 17h.
	* cpuid.man: Updated 54945 PPR name, using newer doc from
	  developer.amd.com.
	* cpuid.man: Added 55803 PPR, found by URL provided by AMD.
	* cpuid.man: Updated sandpile.org URL.

Sat Jan 25 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Selectively applied changes from Smita Koralahalli
	  Channabasappa's patch: "Add PQoS feature to CPUID utility and display
	  subleaf 1 for leaf 0x80000020 in the raw CPUID data."
	* cpuid.c: Renamed fields which no longer are Intel-specific:
	  RDT-CMT/PQoS cache monitoring and RDT-CAT/PQE cache allocation.

Fri Jan 24 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Shortened 0x8000001f leaf descriptions to <= 40 chars.

Fri Jan 24 2020 Smita Koralahalli Channabasappa <Smita.KoralahalliChannabasappa@amd.com>
	* cpuid.c: Add AMD Secure Encryption feature bits to CPUID utility.
	* cpuid.c: Update CPUID utility with additional AMD specific features.
	* cpuid.c: Handle naming issues of cores->threads at register
	  80000008_ecx and compute unit->core at register 8000001e_ebx for
	  families greater than 16h.  Retains previously assigned names if
	  families are lesser than or equal to 16h.  Family values are
	  determined by adding family number and extended family
	  number(80000001_eax[8:11] + 80000001_eax[20:27]) as described in PPR
	  under CPUID_Fn00000001_eax.

Wed Jan 22 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Jan 22 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In print_80000001_ebx_amd, removed two checks for
	  __M(val_1_eax) >= _XM(0) + _M(0).  Yes, gcc, I know that "comparison
	  of unsigned expression >= 0 is always true", and I also know even a
	  half-assed optimizer will get rid of it, so I preferred clarity.  But
	  people freak out if the compiler emits any warnings, no matter what
	  crazy -W options the've chosen.  So I'm removing them.
	* cpuid.c: Changed a bunch of ccstring return types to cstring.  The
	  extra const in ccstring was meaningless for return types, but it
	  caused a ton of additional -Wignored-qualifiers warnings.  No grousing
	  about those warnings; they seem legit.
	* Makefile: Added -Wextra, so I'll see these before people complain
	  about them in the future.

Tue Jan 21 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed Cannon Lake to Palm Cove when talking about uarch.
	* cpuid.c: Added extra (0,6),(8,14),12 (unknown type) fallback.
	* cpuid.c: Fixed (0,6),(8,14) Whiskey Lake typo.
	* cpuid.c: Added i*-9000 names to (0,6),(9,14) Coffee Lake CPUs.

Mon Jan 20 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Jan 19 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed (synth) decoding of Kaby Lake vs. Coffee Lake (and
	  their myriad "optimizations").
	* cpuid.c: Correctly (synth) decoding of Comet Lake, which was wildly
	  wrong.
	* cpuid.c: Treating Whiskey Lake, Amber Lake, and Comet Lake as distinct
	  uarchs just causes absurd "Coffee Lake / Whiskey Lake / Amber Lake /
	  Comet Lake" uarch strings.  Instead, call all of them Coffee Lake, but
	  turn off the core_is_uarch flag.  This ends up treating the other 3 as
	  core names within the Coffee Lake uarch, which seems clearer.
	* cpuid.c: Renamed Ice Lake to Sunny Cove when talking about uarch.
	* cpuid.c: Renamed Tiger Lake to Willow Cove when talking about uarch.
	* cpuid.c: Added (synth) differentiation between Whiskey Lake (U line)
	  & and Amber Lake (Y line).
	* cpuid.c: Added (synth) differentiation between Whiskey Lake (8000
	  Series) and Comet Lake (10000 Series).
	* cpuid.c: Separated (synth) for Goldmont Plus into Pentium & Celeron.
	* cpuid.c: Fixed Moorefield (synth) to say Z3500 instead of Z3400.
	* cpuid.c: Fixed (0,6),(5,5),7 to Cascade Lake-X.  Core names should be
	  as specific as possible (in contrast to uarch names).
	* cpuid.c: added (0,6),(2,7) Atom Z2000 Medfield (synth) based on
	  example found on instlatx64.
	* cpuid.c: Renamed Cedarview (SoC name) to Cedar Trail (core name).
	* cpuid.c: Added (0,6),(1,15) Havendale/Auburndale (synth).
	* cpuid.c: Added VIA (0,6),(0,15) Esther C5J (synth).
	* cpuid.c: Added VIA Nano steppings to (synth).
	* cpuid.c: Added AMD Ryzen vs. EPYC (synth) differentiation to
	  Castle Peak / Rome.
	* cpuid.c: Separated Mullins into Mullins (tablets) and Beema (desktop).
	* cpuid.c: Separated Kabini into Kabini (desktop) and Kyoto (servers).
	  Also added Temash for A-Series, although they're all mixed up with
	  Kabini.
	* cpuid.c: Added AMD (6,15),(3,8) Godavari (synth) decoding.
	* cpuid.c: Added AMD (2,15),(0,3) Griffin (synth) decodings.
	* cpuid.c: Removed duplicate junk code for AMD (1,15),(0,2) which
	  prevented the 3 and 10 steppings from being used.
	* cpuid.c: Corrected some AMD (0,6),(0,8) Duron Applebred (synth) names.
	* cpuid.c: Added AMD DG02SRTBP4MFA based on example found on instlatx64.

Fri Jan 17 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Merged 0xb and 0x1f leaf code, much like what Len Brown of
	  Intel suggested a year ago.  I don't know why I didn't just do that in
	  the first place.  Merged field names look more like the 0x1f names,
	  because I thought they were clearer.
	* cpuid.c: Removed type descriptions from "--- level ---" sub-headers.
	  Intel docs clarify the levels and types are not related.
	* cpuid.c: Got rid of the ridiculously overloaded 1/eax family
	  descriptions.  That information is nearly useless in isolation and
	  described much better in the new (uarch synth) field.
	* cpuid.c: Also got rid of 0x80000001/eax family descriptions.  It
	  wasn't nearly as bad, but still better to use the (uarch synth) field.
	* cpuid.c: Because I removed that family information, also updated the
	  decode_uarch* functions with information about older CPU makers'
	  information.
	* cpuid.c: Added vendor name to (uarch synth).
	* cpuid.c: Fixed 4 and 0x8000001d leaf descriptions to say that the
	  values are in "minus 1" notation.  Steven Noonan hinted that there was
	  something to check here, and there was.
	* cpuid.c: Added (synth size) field to the 4 and 0x8000001d leaves to
	  compute the cache size, also based on a hint from Steven Noonan.
	* cpuid.c: Added preliminary Zhaoxin decoding based on limited
	  information I could find.
	* cpuid.c: Added missing uarch names to decode_uarch_intel().
	* cpuid.c: Added note about P5 Tillamook CPUs.
	* cpuid.c: Added some more die process values.

Thu Jan 16 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Thu Jan 16 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added decode_uarch*() and moved the uarch suffixes there from
	  print_synth*().  print_synth_intel() and print_synth_amd() now call
	  that function to get the suffixes.
	* cpuid.c: Added print_uarch_synth() to display just those suffixes.
	* cpuid.c: Added (synth) decoding for Itanium Poulson & Kittson.
	* cpuid.c: Correct (synth) decoding for Itanium Montecito, Millington,
	  Montvale, Tukwila.
	* cpuid.c: Cleaned up AMD [Excavator] core names.
	* cpuid.man: Added some missing Intel spec updates.

Wed Jan 15 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added "(family synth)" and "(model synth)" to do the combined
	  values used by the linux kernel and AMD.  That is:
	     Family = XF + F
	     Model  = (XM << 4) + M
	* cpuid.c: Hunt down the fallback (synth) decodings that just list tons
	  of different possible meanings, all copied from the more specific
	  lines above them.  They almost always are wrong; if they were right,
	  the more specific tests would've detected them.  So, they're pure
	  guesswork.  Replace them with "(unknown type)", which is more honest.
	* cpuid.c: Simplified Intel Xeon Scalable descriptions.
	* cpuid.c: Eliminated reiteration of i3-XXXX, i5-XXXX, i7-XXXX CPUs,
	  using i*-XXXX instead.
	* cpuid.c: Added (synth) decoding for Core i*-4000U seen in the wild.
	* cpuid.c: Correct missing = symbol in 0x80000001/eax transmeta leaf.
	* cpuid.c: Added [K6], [K7], [K8] (synth) clarifications for AMD K8 CPUs.
	* cpuid.c: Added (6,15),(6,5) (synth) based on sample from Alexandros
	  Couloumbis.
	* cpuid.c: Added AMD "*-Series" queries for the various latters and
	  (synth) rules to use them.  Added more rules for AMD architectures
	  that used this nomenclature.
	* cpuid.c: Changed dO query to sO.

Wed Jan 15 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified (synth) for each microarchitecture to include
	  process-neutral microarchitecture names too:
	  {P6}           = (Pentium Pro, Klamath, Deschutes, Katmai, Coppermine,
	                    Tualatin, Mendocino, Cascades)
	  {Netburst}     = [Willamette, Northwood, Prescott, Cedar Mill]
	  {P6 Pentium M} = (Banias), [Dothan, Yonah]
	  {Core}         = [Merom, Penryn]
	  {Nehalem}      = [Nehalem, Westmere]
	  {Sandy Bridge} = (Sandy Bridge, Ivy Bridge)
	  {Haswell}      = (Haswell, Broadwell)
	  {Skylake}      = (Skylake, Kaby Lake, Coffee Lake, Whiskey Lake,
	                    Amber Lake, Cascade Lake, Comet Lake, Cooper Lake,
	                    Cannon Lake)
	  {Sunny Cove}   = (Ice Lake, Tiger Lake)
	  The similarities are hazy in places.  But this seems useful to help
	  people who, for example, don't know "Cedar Mill", but do know
	  "Netburst".  Also the number of Skylake-related architecture names
	  exploded, and not all "Lake" names belong to Skylake, so this helps to
	  clarify.
	* cpuid.c: Corrected (synth) for Tolapai to 90nm process.

Tue Jan 14 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified Arrandale & Clarkdale as [Westmere].
	* cpuid.c: Clarified Bloomfield, Gainestown & Beckton as [Nehalem].
	* cpuid.c: Added [Merom] clarification to a couple CPUs that missed it.
	* cpuid.c: Added [Cedar Mill] clarification to a couple CPUs that missed
	  it.
	* cpuid.c: Clarified Dothan, Stealey, Crofton & Tolopai as [Dothan].
	* cpuid.c: Clarified Yonah, Sossaman as [Yonah].
	* cpuid.c: Did not clarify Banias as [Banias] because it appears there
	  are no non-Banias chips based on it.
	* cpuid.man: Added handy wiki pages about microarchitectures.

Mon Jan 13 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 6/eax HW_FEEDBACK flag.
	* cpuid.c: Added 7/0/ecx ENQCMD flag.
	* cpuid.c: Added 7/0/edx AVX512_VP2INTERSECT flag.
	* cpuid.c: Added 7/1/eax AVX512_BF16 flag.
	* cpuid.c: Added 0xd/0/eax flags for CET_U & CET_S state.
	* cpuid.c: Added 0x80000008/ebx WBNOINVD flag.
	* cpuid.c: Added 0x80000008/ebx SSBD flags from AMD white paper.
	* cpuid.c: In 7/0/edx leaf, clarified PCONFIG as an instruction.
	* cpuid.c: Added synth detection for Cyrix MediaGX (circa 1997 SoC).
	* cpuid.c: Added 7/0/ecx TME flag, discovered in the linux-5.5-rc6
	  kernel source.
	* cpuid.c: Added 0x80000008/ebx additional STIBP always on flag,
	  discovered in the linux-5.5-rc6 kernel source.
	* cpuid.man: Added AMD SSBD white paper.
	* cpuid.man: Added linux kernel note and clue on what to look for.

Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Matisse B0 stepping based on sample from Steven Noonan.
	* cpuid.c: Removed redundant dR lines from Pinnacle Ridge.  (They could
	  come back if I see an EPYC based on Pinnacle Ridge, but they're
	  redundant now.)

Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
	* Makefile, cpuid.proto.spec: Added INSTALL_STRIP to allow disabling the
	  install -s option.  This makes rpmbuild & find-debuginfo.sh happy,
	  because they can find the cpuid debug information and create the
	  cpuid-debuginfo rpm.
	* Makefile: Updated release target to move debugsource rpms too.

Sun Jan 12 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 0x40000004 leaf for Xen hypervisor.
	* cpuid.c: Added 0x40000005 leaf for Xen hypervisor.
	* cpuid.c: Fixed errors with static ccstring arrays that were not large
	  enough to hold NULLs for all reserved bit field values.
	* cpuid.c: Added AMD's CMT "compute unit" concept to print_apic_synth
	  by adding that architectural level above the "cores" level, which
	  relects AMD's portrayal.  This level is displayed only if it is
	  present.
	* cpuid.c: Added some undocumented synth decodings found on
	  https://en.wikichip.org/wiki/amd/cpuid.  Not everything there makes
	  sense, so I didn't take everything.  Marked with comments.
	* cpuid.c: Added architecture tags to Intel synth decodings:
	  [Willamette], [Northwood], [Prescott], [Merom], [Penryn], [Nehalem],
	  [Westmere].  After that, Intel dropped the hyper-specific code names
	  in favor of suffix letters.
	* cpuid.c: Added architecture tags to Intel synth decodings: [Bonnell],
	  [Saltwell], [Silvermont], [Airmont], [Goldmont], [Goldmont Plus].
	  Intel continues to use hyper-specific names for Atom CPUs.

Sat Jan 11 2020 Todd Allen <todd.allen@etallen.com>
	* Makefile: Added -Wimplicit-fallthrough -Wunused-parameter options.
	* cpuid.c: Clarified 4/edx WBINV/INVD flag.
	* cpuid.c: Added new 7/edx flags, especially including new features to
	  mitigate speculative execution exploits.
	* cpuid.c: Cleaned up output of 0x10 subleaves.
	* cpuid.c: Added 0x12/0/ebx CPINFO for #CP exceptions in enclave.
	* cpuid.c: Properly display 0x18 sub-leaf number.
	* cpuid.c: Added leaf 0x1f V2 Topology logic to decode_mp_synth() and
	  print_apic_synth().  I have no physical examples, so I only could test
	  with artificial input files.
	* cpuid.c: Added 3-way and 6-way associativity to 0x80000006 and
	  0x80000019 leaves.
	* cpuid.c: Fixed incorrect fallthrough in switch for "41322 3.74:
	  table 16".
	* cpuid.c: Fixed incorrect fallthrough's in switch for Family 12h tables.
	* cpuid.c: Added UNUSED macro to make newer gcc's shut up about unused
	  formals.  (They have one complaint if the name is omitted, and another
	  complaint if it's specified but unused.  There's just no pleasing gcc.)
	* cpuid.c: Added break after usage() to make gcc shut up about a
	  nonexistent fallthrough (even though it was marked with NOTREACHED).
	* cpuid.c: Added missing newlines to all the print_2_byte Cyrix/VIA
	  special cases.
	* cpuid.c: Fixed print_f_0_edx: QoS monitoring was in 0xf/0 bit 1, not
	  bit 0.
	* cpuid.c: Added print_40000001_edx_kvm and appropriate call.
	* cpuid.c: For 0x80000001/ebx amd, display PkgType for all family 16h
	  or higher systems, even if no specific BrandId breakdown is known.
	  Added encodings from AMD BKDG and PPR documents.

Sat Jan 11 2020 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added proper synth decoding for Atom C3000 (Denverton).
	* cpuid.c: Clarified Goldmont into eithe Apollo Lake or Denverton.
	* cpuid.c: Corrected (0,6),(9,14) synth decoding to be Coffee Lake.
	* cpuid.c: Added (0,6),(9,14) Coffee Lake synth decoding steppings.
	* cpuid.c: Added (0,6),(9,14) Coffee Lake synth decoding for Xeon E-2100
	  & E-2200.
	* cpuid.c: Added (0,6),(5,5),7 synth decoding for Xeon 2nd Gen Scalable.
	* cpuid.c: Added (0,6),(5,5),7 synth decoding for Xeon D-2100.
	* cpuid.c: Added synth decoding for Gemini Lake R0 stepping (same as B0).
	* cpuid.c: Added vague synth decoding for (0,6),(6,6) Cannon Lake.
	* cpuid.c: Added vague synth decoding for (0,6),(6,10) Ice Lake.
	* cpuid.c: Added vague synth decoding for (0,6),(6,12) Ice Lake.
	* cpuid.c: Added vague synth decoding for (0,6),(7,13) Ice Lake.
	* cpuid.c: Added additional synth decodings for AMD Ryzen, including
	  Pinnacle Ridge.
	* cpuid.c: Differentiate Ryzen from EPYC using brand string and new
	  query functions.
	* cpuid.man: Added new spec updates, revision guides, etc.

Sat Jan 11 2020 Todd Allen <todd.allen@etallen.com>
	* Prettification of Masanori Misono's 0x40000001/eax KVM fields.
	* Formatting changes & URL removal from Jeffrey Walton's SunOS patch.
	* Prettification of Thomas Friebel's 0x40000003 leaf fix: while loop.
	* Reverted print_header() to use !raw (personal preference of mine).
	* Format changes to & rearrangement of fanjinke's Hygon patch.
	* Changed Ani Sinha's 0x80000008/ebx indirect branch prediction barrier
	  description to include IBPB acronym.

Fri Jan  3 2020 Thomas Friebel <friebelt@amazon.de>
	* Fixed bug that skipped half the subleaves in the 0x40000003 hypervisor
	  leaf.
	* Fixed contradictory try logic in print_header() for leaf 0x40000003.
	* Fixed to use 0x40000003/ebx for high 32 bits of vtsc_offset,
	  instead of using eax for both high & low 32 bits.

Fri Nov  8 2019 Ani Sinha <ani.sinha@nutanix.com>
	* cpuid.c: Added 0x80000001/ecx NB performance counter extensions &
	  0x80000008/ebx indirect branch prediction barrier.

Mon May 13 2019 fanjinke <fanjinke@hygon.cn>
	* Added Hygon support.

Wed May  8 2019 Jeffrey Walton <noloader@gmail.com>
	* cpuid.c: Added support for SunOS build.

Sat Mar  2 2019 Masanori Misonoc <m.misono760@gmail.com>
	* cpuid.c: Added 0x40000001/eax KVM bit fields.

Fri Jun  1 2018 Tony Luck <tony.luck@intel.com>
	* cpuid.c: Added decoding of 0x10/3 subleaf.

Sat May 26 2018 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed 7/ecx spelling error: intruction.
	* cpuid.c: Fixed main spelling error: unrecogized.

Sat May 19 2018 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sat May 19 2018 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added some more fields reported by Stefan Kanthak, after
	  tracking down some documentation that explains them:
	* cpuid.c: Added 7/ecx bit 7: CET_SS and 7/edx bit 20: CET_IBT fields.
	  So far, the only documentation for these is Control-flow Enforcement
	  Technology Preview (334525), section 8.2 Feature Enumeration.
	* cpuid.c: Added 7/ecx bit 16: 5-level paging.  So far, the only
	  documentation for this is 5-Level Paging and 5-Level EPT White Paper
	  (335252).
	* cpuid.c: Improved 14/0/ecx descriptions.
	* cpuid.c: Added hypervisor leaf descriptions from Microsoft's
	  Hypervisor Top Level Functional Specification (Released Version 5.0b).
	* cpuid.man: Added the above mentioned docs.

Thu May 17 2018 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added CPUID features documented in PPR for AMD Family 17h
	  Model 01h B1 (54945 Rev 1.14):
	* cpuid.c: Added PCOMMIT to 7/ebx: PCOMMIT instruction (a deprecated
	  instruction).
	* cpuid.c: Added bits to 80000001/ecx (amd).
	* cpuid.c: Added 80000007/ebx.
	* cpuid.c: Added 80000007/ecx.
	* cpuid.c: Added bits to 80000007/edx.
	* cpuid.c: Added 80000008/ebx.
	* cpuid.c: Added bits to 8000000a/edx.
	* cpuid.c: Added bits to 8000001a/eax.
	* cpuid.c: Added bits to 8000001b/eax.
	* cpuid.c: Added tentative 8000001f descriptions.  Information obtained
	  from Linux kernel 4.17-rc5 arch/x86/kernel/cpu/scattered.c (as patched
	  by Tom Lendacky of AMD on 18-Apr-2017 via LKML), and from Secure
	  Encrypted Virtualization API Version 0.16 Technical Preview
	  (55766 Rev 3.06).
	* cpuid.man: Added 54945 & 55766 docs.

Thu Apr 19 2018 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Apr 19 2018 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed various bugs reported by Stefan Kanthak:
	* cpuid.c: Fixed bug in print_2_meaning: 0x49 normal & special cases.
	* cpuid.c: Fixed bug in print_2_meaning: 0x63 additional 2M/4M, 4-way,
	  32 entries item.
	* cpuid.c: Collapsed print_2_meaning into print_2_byte so that the
	  prefix and CONT are known in one place.
	* cpuid.c: Fixed bug in print_2_byte: 0x7d is not sectored.
	* cpuid.c: Fixed bug in print_2_byte: 0xc2 is 4K, not 4M.
	* cpuid.c: Changed 6/ecx bit 0 to "hardware coordination feedback".
	* cpuid.c; Changed 7/ebx bit 3 to "BMI1 instructions".
	* cpuid.c: Change 7/ebx bit 12 to RDT-M.
	* cpuid.c: Change 7/ebx bit 15 to RDT-A.
	* cpuid.c: Corrected "0x40000003/ecx" label.
	* cpuid.c; print_40000003_edx_microsoft: corrected "idle" spelling.

Wed Apr 19 2018 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added mnemonic letters for some 1/ecx, 1/edx, and 7/ebx leaf
	  fields.
	* cpuid.c: Fixed bug with 4/ecx: field name should be "number of sets".
	* cpuid.c: Fixed bug with 4/ecx leaf: pass ECX to it!
	* cpuid.c; Fixed bug with 0x10/ecx: pass ECX to it!
	* cpuid.c: Fixed bug with 0x10/edx: pass EDX to it!

Sun Apr  8 2018 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 2 leaf 0xfe encoding: TLB data in leaf 0x18.
	* cpuid.c: Added new Intel 6/eax bit fields.
	* cpuid.c: Added new Intel a/edx bit field: anythread deprecation.
	* cpuid.c: Added new Intel d/0/eax bit field: IA32_XSS HDC state.
	* cpuid.c: Added new Intel 10/0/ebx bit field: memory bandwidth alloc.
	* cpuid.c: Added new Intel 12/0/eax bit fields
	* cpuid.c: Added new Intel 18 leaf: deterministic address translation.
	* cpuid.c: Added new Intel 7/ecx bit fields from Intel Architecture
	  Instruction Set Extensions and Future Features Programming Reference.
	* cpuid.c: Added new Intel 1b leaf from Intel Architecture
	  Instruction Set Extensions and Future Features Programming Reference.
	* cpuid.c: Added synth decoding for Avoton C0 stepping (same as B0).
	* cpuid.c: Corrected synth decoding for Bay Trail-M C0 steppings.
	* cpuid.c: Added synth decoding for Bay Trail-I (E3800).
	* cpuid.c: Added synth decoding for Xeon D-1500N (Broadwell-DE A1).
	* cpuid.c: Added synth decoding for Xeon E7-4800/8800 (Broadwell-EX B0).
	* cpuid.c: Correct synth decoding for Bay Trail A0.
	* cpuid.c: Added synth decoding for Bay Trail D0.
	* cpuid.c: Added synth decoding for Core X-Series (Skylake-X).
	* cpuid.c: Added synth decoding for Xeon Scalable (Bronze, Silver, Gold,
	  Platinium) (Skylake).
	* cpuid.c: Added synth decoding for Pentium Silver (Gemini Lake).
	* cpuid.c: Added synth decoding for AMD Zen.
	* cpuid.man: Added new spec updates & PPR.

Fri Nov  3 2017 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Attribute whitepaper to Shih Kuo.

Wed Jun 22 2017 Lars Wendler <polynomial-c@gentoo.org>
	* cpuid.c: recent glibc versions no longer automagically include
	  sysmacros.h headers. This needs to be done by the source files itself
	  now.

Fri Mar  3 2017 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added missing SDBG bit to 1/ecx leaf.

Sun Jan 22 2017 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Use __cpuid_count macro for "cpuid" instruction if possible.
	  This macro is present in gcc 4.3.0 and later, and works around the fact
	  that the cpuid instruction writes on the PIC register.  This is only
	  important when compiling PIC/PIE.
	* cpuid.c: Added synth decoding for Intel Knights Landing B0.  The Intel
	  docs still don't specify the stepping numbers, but all examples seen
	  so far have stepping number 1, and so far B0 is the only stepping.
	* cpuid.c: Added new synth decodings for Intel Kaby Lake.
	* cpuid.c: Fixed synth decodings for AMD Steamroller.
	* cpuid.c: Fixed synth decodings for AMD Jaguar.
	* cpuid.c: Added synth decodings for AMD Puma.
	* cpuid.c: Added synth decodings for AMD Excavator.
	* cpuid.c: For (6,15),(0,2) Piledriver processors, detect FX series
	  and report it as Vishera instead of Abu Dhabi/Seoul/Delhi.
	* cpuid.c: Added general microarchitecure names for AMD (e.g.
	  Piledriver) in addition to specific core names (e.g. Trinity) for
	  later generation processors.  If I have trouble remembering these,
	  it seems likely other people do too.
	* cpuid.c: Added synth decoding for Quark X1000.
	* cpuid.c: Added Intel Atom Z2760 (Clover Trail).
	* cpuid.c: Added extra synth decodings for some Sandy Bridge processors.
	* cpuid.c: Added extra synth decodings for some Ivy Bridge processors.
	* cpuid.man: Added new & missing spec updates & revision guides.
	* FUTURE: Cleaned this up somewhat.

Mon Dec  5 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Removed stale len variable from do_file().

Thu Dec  1 2016 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Nov 30 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed bugs in the subleaf walks for 0x8000001d (AMD cache
	  information) and 0x40000003 (Xen hypervisor information) because the
	  code for them was under wholly the wrong loops.  Thanks to Brice
	  Goglin for detecting this and working out the cause of the bug.

Wed Nov 16 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated comments referencing 325462 Table 35-1 to also
	  specify Volume 3.
	* cpuinfo2cpuid: Added grep commands to EXAMPLES.

Mon Nov 14 2016 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.man: Added 334663 & 334820 spec updates.

Sun Nov 13 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed bug reported by Andrew Cooper where, in do_real, for
	  the 0xd leaf, the lower half of the valid bit set for XSS should've
	  used 0xd/1/ecx instead of 0xd/1/eax.  Sadly, this bug affects raw
	  dumps too.
	* cpuid.c: Added -l/--leaf and -s/--subleaf options to cause cpuid
	  to dump just the specified leaf and subleaf.  If -s/--subleaf is not
	  specified, it is assumed to be 0.  The intended purpose for this is
	  to display raw dumps of not-yet-supported leaves, or to workaround
	  bugs like the above.

Sat Nov 12 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In bits_needed, add a further check for !defined(__ILP32__),
	  which should help with building a 32-bit version of cpuid on a 64-bit
	  system.

Sat Nov 12 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Made editorial changes to Piotr Luc's patches (spelling,
	  capitalization, register order, comments, etc.).
	* cpuid.c: Added AVX512DQ, AVX512IFMA, AVX512BW, AVX512VL, and CLWB
	  decoding to 7/ebx.
	* cpuid.c: Added AVX512VBMI to 7/ecx.
	* cpuid.c: Added print_f_0_edx to show L3 cache QoS monitoring support.
	* cpuid.c: Added total & local bandwidth monitoring to 0xf/1/edx.
	* cpuid.c: Added 0x15/ecx nominal core crystal clock decoding.
	* cpuid.c: In print_17_0_ebx, corrected reversed scheme encodings.
	* cpuid.c: Added synth decoding for Xeon D-1500 (Broadwell-DE) Y0
	  stepping.
	* cpuid.c: Added synth decoding comment about Braswell D1 stepping, but
	  its stepping number isn't documented.
	* cpuid.c: Added synth decoding for (0,6),(8,14) Kaby Lake processors.
	* cpuid.c: Added synth decoding for Apollo Lake processors.
	* cpuid.c: Added vague synth decoding for (0,6),(9,14) Kaby Lake
	  processors.
	* cpuid.c: Re-sorted (0,6),(5,7) Knights Landing to correct position.
	* cpuid.c: Re-sorted (0,6),(5,15) Goldmont to correct position.

Sat Oct 27 2016 Piotr Luc <Piotr.Luc@intel.com>
	* cpuid.c: Add AVX512_4VNNIW & AVX512_4FMAPS flags.
	* cpuid.c: Add Knights Mill (KNM) CPUID.

Sun Aug 14 2016 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* Makefile: Added clean rules to remove tarballs & rpm's with other
	  version numbers.

Sun Aug 14 2016 Todd Allen <todd.allen@etallen.com>
	* cpuinfo2cpuid: Added a script that takes input from a /proc/cpuinfo
	  file and converts it into suitable input to cpuid.  The information
	  that cpuid is capable of producing based on this very limited input
	  information is slight, but apparently there is interest in getting the
	  synthesized (synth) leaf from this.  There isn't much value in using
	  it with an actual /proc/cpuinfo file on the local system, because just
	  allowing cpuid to read the local cpuid info will provide better
	  output.  But it could be useful for interpreted saved /proc/cpuinfo
	  files from another system.  I slapped together the basic logic, and
	  Jirka Hladky turned it into a proper perl script, with actual options,
	  a help screen, and even documentation.  I then made some changes to
	  give it some more uniform indentation, whitespace, and such.  And to
	  give Jirka Hladky more credit, since his contribution to the script is
	  larger than my own.
	* Makefile: Added rules to generate cpuinfo2cpuid.man from the =pod data
	  in the script.
	* Makefile: Added cpuinfo2cpuid & cpuinfo2cpuid.man to the released
	  materials.
	* cpuid.proto.spec: Added cpuinfo2cpuid & cpuinfo2cpuid.1.gz to released
	  materials.

Sun Aug 14 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed instances of Kb to KB.  In print_2_meaning, changed
	  an instance of 4k to 4K.

Sat Aug 13 2016 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added 7/ebx SGX & FDP_EXCPTN_ONLY flags.
	* cpuid.c: Added 7/ecx BNDLDX/BNDSTX MAWAU value field, RDPID & SGX_LC.
	* cpuid.c: Added d/0/eax MPX state field.
	* cpuid.c: In print_d_0_eax, split MPX and AVX-512 all_or_none fields
	  into their component parts.  Also added IA32_XSS PT state.
	* cpuid.c: In print_d_n_ecx, clarify XCR0 as user state and IA32_CXX as
	  supervisor state.
	* cpuid.c: In print_d_n, add MPX and PT features.
	* cpuid.c: Renamed leaf 0x10 to Intel's new name.  Corrected totally
	  bogus interpretation of subleaf 0.
	* cpuid.c: Generalize subleaf 0x10/1 to also include 0x10/2, and
	  provide new Intel correct names for each.
	* cpuid.c: Added 0x14/0 PTWRITE & power event trace.
	* cpuid.c: Added description for leaf 0x12 (SGX Capability) and all its
	  subleaves.
	* cpuid.c: Added descriptionf or leaf 0x17 (SoC vendor) and its
	  subleaves.
	* cpuid.c: Decode new leaf 2 cache descriptors: 0x64 & 0xc4.
	* cpuid.c: Updated Atom C2000 (Avoton) with A0/A1 steppings.
	* cpuid.c: Added Atom Z3n00 (Bay Trail-T B2/B3) specific stepping 1.
	* cpuid.c: Added Xeon D-1500 (Broadwell-DE) V2 stepping.
	* cpuid.c: Corrected Atom Z8000 (Cherry Trail) with correct model, per
	  changes in its spec update.
	* cpuid.c: Change the (0,6),(5,14) Skylake descriptions to be more vague
	  to reflect the larger set of existing processors now.
	* cpuid.c: Add actual information for the (0,6),(4,14) Skylake
	  processors.
	* cpuid.c: Add actual information for the (0,6),(5,14) Broadwell-E
	  processors.
	* cpuid.c: Add actual information for the (0,6),(4,15) Broadwell and
	  Broadwell-EX processors.
	* cpuid.c: Added vague mentions of Goldmont (0,6),(5,12) and (0,6),(5,15)
	  based on 325462 Table 35-1.
	* cpuid.c: Add Atom S1200 (Centerton) under (0,6),(3,6) thanks to an
	  example provided by Jirka Hladky.
	* cpuid.c: Added Eden to the list of possible meanings of VIA
	  (0,6),(6,13).  An example provided by Daniel Wyatt shows that they
	  sometimes use the simple Eden brand for this architecture.
	* cpuid.man: Added various new Intel documents used while making the
	  above changes.
	* cpuid.c: Made -f - operate on stdin.

Wed Jun 22 2016 Alan Cox <alan@lxorguk.ukuu.org.uk>
	* cpuid.c: Added out-of-memory checks to strregexp.

Mon Oct 19 2015 Todd Allen <todd.allen@etallen.com>
	* Updated cpuid.man's list of information sources with new sources used
	  in the 20151017 release (and one renamed source).

Sat Oct 17 2015 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Updated synth decoding for Broadwell processors.
	* cpuid.c: Added 0xd leaf field.
	* cpuid.c: Updated and expanded 0x14 leaf fields.
	* cpuid.c: Added synth decoding for Intel Xeon E7 v2 (Ivy Bridge-EX).
	* cpuid.c: Added synth decoding for Intel Core i5/i7 (Skylake).
	* cpuid.c: Added vague synth decodings for a few more future processor
	  models from Intel 64 and IA-32 Architectures Software Developer's
	  Manual (325462), Table 35-1.

Thu Oct 15 2015 Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
	* cpuid.c: Decode new leaf 2 cache descriptors: 6a, 6b, 6c, 6d.
	* cpuid.c: added synth decoding for Knights Landing.
	  [NOTE FROM Todd Allen: There is no datasheet or spec update for
	  Knights Landing yet, but Intel 64 and IA-32 Architectures Software
	  Developer's Manual (325462), Table 35-1 mentions that it will have the
	  family & model (0,6),(5,7).

Sat Jun  6 2015 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.man: Added 325462 manual.
	* cpuid.c: Added new & missing decodings for: 4/ecx, 6/eax, 7/ebx, 7/ecx.
	* cpuid.c: Overhauled handling of 0xd leaf, based on new and more
	  extensive information in the Intel CPUID documentation, particularly
	  on how to decide which leaves are valid.  The approach functions
	  correctly for the subset described in the AMD documentation, too.
	  This overhaul includes information on the XSAVEC, XGETBV, and
	  XSAVES/XRSTORS instructions.
	* cpuid.c: Renamed 0xf leaves to include "Monitoring".
	* cpuid.c: Added 0x10 leaves for QoS Enforcement.
	* cpuid.c: Added new leaf 2 cache meanings: 0x1d, 0x24, 0xa0, 0xc3.
	* cpuid.c: Added missing i7 synth decoding for (0,6),(3,14).
	* cpuid.c: Corrected Atom Z3000 model & stepping which were bafflingly
	  wrong: (0,6)(3,5),1 -> (0,6)(3,7),8.
	* cpuid.c: Corrected other Bay Trail stepping names for Celeron/Pentium
	  N and J series.
	* cpuid.man: Added references to a bunch of new Intel manuals.
	* cpuid.c: Added synth decoding for Intel Xeon Phi (Knights Corner).
	* cpuid.c: Added synth decoding for Intel Atom C2000 (Avoton).
	* cpuid.c: Added synth decoding for Intel Xeon E5-x600 (Haswell-EP).
	* cpuid.c: Added synth decoding for Intel Xeon E5-[48]800 (Haswell-EP).
	* cpuid.c: Added synth decoding for Intel Core M (Broadwell-Y).
	* cpuid.c: Added synth decoding for Intel Xeon D-1500 (Broadwell-DE).
	* cpuid.c: Added synth decoding for Intel i7-5000 Extreme (Haswell R2).
	* cpuid.c: Added synth decoding for Intel Atom Z8000 (Cherry Trail).
	* cpuid.c: Added synth decoding for Intel Pentium/Celeron N3000
	  (Braswell).
	* cpuid.c: Added synth decoding for Intel i7 5th gen (Broadwell).
	* cpuid.c: Added synth decoding for Intel E3-1200 v4 (Broadwell).
	* cpuid.c: Added Xeon E5-4600 to synth decoding for other Sandy Bridge
	  E5 processors (it was omitted accidentally).
	* cpuid.c: Added Pentium D 9xx Processor to synth decoding for Presler
	  D0 (it was omitted accidentally).

Fri Mar 21 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Deal with 0-width PKG_width fields in print_apic_synth(),
	  for CPUs where the SMT_width + CORE_width >= 8.  This happens on
	  Xeon Phi chips.

Wed Feb 12 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added CLFLUSHOPT instruction field to leaf 7, ebx.
	* cpuid.c: Added Processor Frequency Information leaf (0x16).

Tue Feb 11 2014 Todd Allen <todd.allen@etallen.com>
	* Makefile: Added src_tar rule.

Tue Feb 11 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Made changes to allow building and running on kFreeBSD.  This
	  started out as a patch from Andrey Rahmatullin, but I refactored it.
	  The changes to disable the cpuid kernel support are protected by a
	  USE_CPUID_MODULE definition.  And there's an additional sanity check
	  to reject -k in that case.  The changes to use the library versions of
	  sched_setaffinity are protected by USE_KERNEL_SCHED_SETAFFINITY.  I
	  continue to go straight to the kernel on linux, though.

Tue Feb 11 2014 Todd Allen <todd.allen@etallen.com>
	* Makefile: Reorganized Andrey Rahmatullin's changes a bit and used
	  them in my development build rules (make todd) too.

Tue Feb 11 2014 Andrey Rahmatullin <wrar@wrar.name>
	* Makefile: Honor CPPFLAGS, CFLAGS and LDFLAGS from the environment.

Mon Jan 27 2014 Todd Allen <todd.allen@etallen.com>
	* Makefile: Change to my development build rules (make todd) to use ld's
	  --hash-style=both to avoid a SIGFPE when running on very old 32-bit
	  systems.  It has no effect on the tool for anyone else.

Thu Jan 23 2014 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Thu Jan 23 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Stop displaying raw hex for 0xc and 0xe leaves, because they
	  are reserved and just contain zeroes.
	* cpuid.c: Fixed missing leaf 0xf subleaf 1 in do_real().
	* cpuid.man: Added reference to Intel Architecture Instruction Set
	  Extensions Programming Reference (319433).
	* cpuid.c: Added new feature flags from that document.

Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added Celeron B800 synth decoding.
	* cpuid.c: Added Pentium G3000 & Celeron G1800 synth decoding.
	* cpuid.c: Added 4th Gen Core family mobile processors synth decoding.
	* cpuid.c: Added information about E5 v2 processors (no longer just
	  engineering samples) and related Ivy Bridge-EP processors.
	* cpuid.c: Added Bay Trail (Atom Z3000, etc.) processors synth decoding.

Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.man: Added reference to Intel decoding from Intel 64 and IA-32
	  Architectures Software Developer's Manual Volume 2A: Instruction Set
	  Reference, A-M (253666).
	* cpuid.c: Added new Intel decodings from that document.

Sun Jan 12 2014 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added new (instruction supported synth) field to report on
	  instruction support when knowledge of that is scattered across
	  multiple CPUID leaves.  PREFETCH/PREFETCHW is the weirdest example.
	* cpuid.c: Clarified the raw PREFETCH/PREFETCHW field in 80000001 edx
	  leaf with the 3DNow! prefix, similar to the description in the AMD
	  CPUID docs.  Thanks to Chris Orgill for reporting these two issues.

Fri Sep 27 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added missing break to decode_amd_model(), family (0,15),
	  model (4,0), case 0x18.  Thanks to David Binderman for reporting this.

Mon Jun 10 2013 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Mon Jun 10 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added mention of Opteron 3200 (Zurich) chips, accidentally
	  omitted from yesterday's updates.

Sun Jun  9 2013 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sun Jun  9 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated 14h Model 00h-0Fh AMD model tables.
	* cpuid.c: Added synth decoding for Opteron x300 (Piledriver) chips.
	* cpuid.c: Added synth decoding for family 16h processors, tentatively
	  identified as Steamroller.
	* cpuid.man: Added new AMD 15h Model 10h-1Fh, and AMD 16h Model 00h-0Fh
	  manuals.

Sat Jun  8 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added sanity check to 0xCxxxxxxx leaves to check for an
	  unreasonably large indicated maximum leaf number.  If found, further
	  walk of them is halted.
	* cpuid.c: Skip 0x4xxxxxxx leaves if cpuid does not indicate that the
	  environment is a guest.  This was suggested by Steven Levine, although
	  I implemented it differently.

Sat Jun  8 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Clarified some KVM hypervisor leaf feature flags that Eduardo
	  Habkost pointed out.  Added a couple new flags.

Sat Jun  8 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Extended Eduardo Habkost's stash separation to include the
	  0x80000008 leaf, and the leaves that inform transmeta_info.

Sat Jun  8 2013 Eduardo Habkost <ehabkost@raisama.net>
	* cpuid.c: This patch separates the code that changes fields in the
	  'stash' struct from the code that prints that information. This way,
	  the stash struct will get updated even when in raw mode, so other
	  parts of the code can use that information.
	  [NOTE FROM Todd Allen: It used to be that the stash was only set and
	  used in cooked mode, but some uses dealing with the hypervisor snuck
	  out and were used all the time.  This new separation is only really
	  necessary for the hypervisor fields, but it's good practice to do all
	  the fields this way, so I'm accepting the patch as is.]

Sat Jun  8 2013 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for Celeron G400/G500.
	* cpuid.c: Added synth decoding for Cedarview B3.
	* cpuid.c: Added synth decoding for Ivy Bridge i3 processors.
	* cpuid.c: Added synth decoding for Ivy Bridge Pentium G1600/G2000/G2100.
	* cpuid.c: Added synth decoding for Ivy Bridge Pentium
	  900/1000/2000/2100.
	* cpuid.c: Clarified that Ivy Bridge Xeon E3-1200 is actually E3-1200 v2.
	* cpuid.c: Added vague synth decoding for Haswell, but spec updates
	  show no specific chips or steppings yet.
	* cpuid.c: Expanded A100/A110 synth decoding to include semi-official
	  Pentium M (Crofton) processors in Apple TV boxes.
	* cpuid.c: Added Xeon E5-2600 v2 engineering sample.  Perhaps this will
	  be the final synth decoding for them, but for now it's just marked as
	  an engineering sample.
	* cpuid.man: Added new Intel manuals.

Fri Aug 24 2012 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added sanity check to 0x4xxxxxxx leaves to check for an
	  unrecognized hypervisor and an unreasonably large indicated maximum
	  leaf number.  If found, further walk of them is halted.

Tue Aug 21 2012 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Cleaned up printf(name) statements that were admonished by
	  clang.

Fri Jun  1 2012 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Thu May 31 2012 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated CPUID feature flags.
	* cpuid.c: Updated CPUID function 7 to support sub-leaves (mostly for
	  future functionality that might be added to them).
	* cpuid.c: Updated synth decoding for Intel Dothan C0 because some use
	  65nm process now.
	* cpuid.c: Updated Intel EP80579 synth to mention 65nm process.
	* cpuid.c: Added synth decoding for Intel Atom E600 series.
	* cpuid.c: Updated synth decoding for Intel Sandy Bridge D2 to include J1
	  and Q0, which have the same CPUID.
	* cpuid.c: Added synth decoding for Intel Atom D2000/N2000 (Cedarview).
	* cpuid.c: Added synth decoding for Intel Sandy Bridge-E.
	* cpuid.c: Added synth decoding for AMD Llano.
	* cpuid.c: Improved distinction between AMD Interlagos & Zambezi.
	* cpuid.c: Added synth decoding for RDC IAD 100.
	* cpuid.c: Fixed some formatting bugs for Transmeta-specific leaves.
	* cpuid.c: Added synth decoding for some of VIA's versions of WinChips.
	* cpuid.man: Added mentions of spec updates for several Atoms, i7 for
	  LGA-2011, and Xeon E5; and AMD 12h family.

Wed May 30 2012 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed ancient bug in distinguishing Irwindale from Nocona
	  (they differ only by L2 cache size).
	* cpuid.c: Added synth decoding for desktop and mobile Ivy Bridge.

Sat Feb 25 2012 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Cleaned up hypervisor-specific leaves for KVM.
	* cpuid.man: Added mention of KVM cpuid documentation.

Fri Feb 24 2012 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for Intel Westmere-EX processors.
	* cpuid.c: Added synth decoding for AMD family 15h chips: AMD FX
	  (Zambezi), Opteron 6200 (Interlagos), and Opteron 4200 (Valencia).
	* cpuid.c: Added synth decoding for AMD Z-Series and other Fusion
	  chip ON-C0 steppings.
	* cpuid.c: Added synth decoding for Atom Z600 (Lincroft).
	* cpuid.c: Updated AMD model decoding for family 10h processors.
	* cpuid.man: Added mention of AMD family 14h and 15h documents, and
	  Intel Westmere-EX & Lincroft documents.
	* cpuid.man: Removed obsolete limitation about 0x8000001b.
	* cpuid.c: Added support for hypervisor leaves (0x4000000 and after).
	  Interpreted known generic leaves.  Interpreted hypervisor-specific
	  leaves for Xen (deduced from source, as no documentation on them
	  exists).  Interpreted hypervisor-specific leaves for KVM.  Interpreted
	  hypervisor-specific leaves for Microsoft.

Tue Jan  3 2012 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added synth decoding for Athlon 64 (Venice DH-E6) chips.

Wed Nov  2 2011 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added saw_4 and saw_b stash flags to deal with chips that
	  report 0xc codes but still omit 0xb codes.  This way, a maximum code
	  of 0xc no longer implies the presence of 0xb codes for things like
	  APIC decoding.

Mon Mar 28 2011 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added APIC synth decoding for AMD, deduced by analogy to Intel
	  code and the multiprocessor synth logic.

Mon Mar  7 2011 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added some decoding for VIA 0xc0000002 codes, based on
	  information from Juerg Haefliger.  Very incomplete because VIA
	  doesn't document their functions well.
	* cpuid.c: Fixed output of 0xc0000001 raw dump to conform to new style.

Sat Mar  5 2011 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Fri Mar  4 2011 Todd Allen <todd.allen@etallen.com>
	* cpuid.c,cpuid.man: Added Celeron T1000 series, previously missing.
	* cpuid.c,cpuid.man: Added Celeron Mobile P4000, U3000 series.
	* cpuid.c,cpuid.man: Added current Sandy Bridge processors.

Thu Mar  3 2011 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added detection of PCIDs & TSC-DEADLINE.
	* cpuid.c: Verified Mike Stroyan CPUID 2 cache meanings from Intel CPUID
	  document (241618-037).  Added 0x76 meaning.
	* cpuid.c: Added various new flags from Intel 241618-037.
	* cpuid.c,cpuid.man: Added AMD family 14h processors.
	* cpuid.c,cpuid.man: Updated Intel process id table, mostly as just
	  generalizations.

Tue Nov  9 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Update the usage() screen, since some of its -i and -1
	  comments are incorrect now.

Mon Oct  4 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Added AMD Geode LX.
	* cpuid.c: Added NSC Geode GX2 and AMD Geode GX.
	* cpuid.c, cpuid.man: Added AMD Geode NX.

Sat Oct  2 2010 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c,cpuid.man: Added Intel Atom N500.

Thu Sep 30 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c,cpuid.man: Added support for Intel Tolapai (SoC).
	* cpuid.c,cpuid.man: Added support for Intel Clarkdale chips from
	  specification update 323179.
	* cpuid.c: Generalized decode_amd_model by adding full brand tables for
	  AMD chips.  If a BIOS doesn't recognize a chip it writes
	  "model unknown" into its brand string via MSR's.
	  decode_override_brand detects that and uses the decode_amd_model brand
	  to differentiate CPUs.
	* cpuid.c: Corrected 80000001/ebx PkgType, BrandId, and str1 bit fields.
	* cpuid.c: Corrected problems with brand field decoding because its bit
	  field with differs from architecture to architecture.
	* cpuid.c: decode_amd_model: the partialmodel decrement special case
	  applies only to XF=1,F=15; and not to XF=2,F=15.

Mon Sep 27 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added support for NSC/AMD Geode GX1.

Wed Sep  8 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected the Transmeta processor revisions, which should've
	  been in hex instead of octal.

Thu Sep  2 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added a couple vague steppings for Transmeta Efficeon TM8000
	  processors.  Updated some transmeta bitfields.  This is all done
	  blind, as I have no examples of these chips, little documentation, and
	  the company is long defunct.

Thu Sep  2 2010 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Fixed a few header strings that had incorrect function hex
	  codes or registers.

Wed Sep  1 2010 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Fixed buffer size in do_file() to be able to read new
	  raw dumps with ecx information.  It needed a couple more characters.
	* cpuid.c: Added Celeron M (Yonah D0) & Celeron M (Merom-L1 A1) synth
	  entries.
	* cpuid.c: added Xeon Processor LV (Sossaman D0).
	* cpuid.c: Update Itanium chips in the synth tables.  Sadly, this all
	  still is being done blind, as I have no access to any Itanium chips.
	* cpuid.c: Wrote an x86_64 counterpart to the assembly code for
	  bits_needed().
	* Makefile, cpuid.proto.spec: Changed to support building for both i386
	  and x86_64.

Tue Aug 31 2010 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Rearranged synth rules and substantially simplified query
	  macros into something like the form I was hoping for when I started
	  this redesign.
	* cpuid.c: Added changes from the new AMD CPUID document that claims to
	  have been released in September 2010!
	* cpuid.c: Changed raw dump to include %ecx values to accomodate CPUID
	  functions with gaps in the useful %ecx range (e.g. 0xd).  The file
	  parser accepts either the old or new forms.
	* Makefile, cpuid.proto.spec: Updated build scheme for my current
	  systems.
	* LICENSE: Changed to a GPL license.

Mon Aug 30 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Semi-mechanically eliminated the codes used to
	  disambiguate in the synth string and replaced them with queries,
	  which I think will be more general-purpose and will allow me to
	  eliminate a lot of the problem with codes appropriate for one
	  model being a problem for subsequent models (e.g. the Core Solo
	  vs. Core Duo distinction).  There still are general-purpose
	  queries like there were general-purpose codes, but the
	  special-case queries will only matter for those families that
	  care about them.  This does mean that it's possible for multiple
	  queries to register as true, so I have to be more careful with
	  the order of chips in the synth tables.

Fri Aug 27 2010 Todd Allen <todd.allen@etallen.com>
	* Tested on a variety of CPUs.
	* cpuid.c: Corrected Mobile Turion checking in decode_brand.
	* cpuid.c: Added synth entries for 6/15/4 pre-production
	  Conroe B0/Woodcrest B0.
	* cpuid.c: Added synth entries for Santa Rosa F3 stepping
	  (undocumented).
	* cpuid.c: Fixed synth entries for Brisbane, Toledo, and Windsor to
	  expect code DA (for dual-core Athlons).
	* cpuid.c: Generalized the check for Intel Extreme Edition chips.
	* cpuid.c: Added synth entries Core 2 Quad (Conroe) chips.
	* cpuid.c: Added synth entry for VIA 6/13/0 chip.  Unfortunately, there
	  is no documentation and very little anecdotal evidence of this chip,
	  so the description is vague.
	* cpuid.c: Added addition CPUID function 2 cache codes from Mike
	  Stroyan.
	* cpuid.c: Fixed some cut&paste errors that had EAX where it should
	  have been EBX, as reported by Mike Stroyan
	* cpuid.c: Added very short synth table for SiS chips.  I found no
	  documentation on these, so I just have the one case.
	* cpuid.c: Fixed the (synth) strings for oddball chips, which suffered
	  from a cut&paste error.
	* cpuid.c: Simplified some of the fallback strings that had grown
	  ridiculously long.

Thu Aug 26 2010 Todd Allen <todd.allen@etallen.com>
	* Tested on a variety of CPUs.
	* cpuid.c: Added more logic for Woodcrest pre-production chips.
	* cpuid.c: Corrected synth logic for VIA Antaur chips.
	* cpuid.c: Added synth for plain vanilla Thoroughbred Athlon.

Wed Aug 25 2010 Todd Allen <todd.allen@etallen.com>
	* Tested on a variety of CPUs.
	* cpuid.c: Fixed a couple bugs with decoding processor numbers in
	  print_synth_amd_model.

Tue Aug 24 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Further changes to mp_synth decoding, including tracking
	  of the decoding method used (there are around 4 major approaches,
	  depending on how you count).
	* cpuid.c: Added apic_synth decoding to find the appropriate field
	  widths and decode the process local APIC physical ID.  This is useful
	  in its own right, but also helps convince me that many Intel chips
	  really do claim to have hyperthreads even though they don't.
	* cpuid.c: Added support for direct instruction (-i) functionality to
	  report on all CPUs by calling sched_setaffinity to reschedule the
	  process on each CPU.  This is now the default behavior for -i, but
	  it can be overridden with the -1 option.
	* cpuid.c: added Barcelona B1 (undocumented chip) synth decoding.

Mon Aug 23 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Made real_get pass the requested ecx values even when
	  using -k.  Modern linux kernel expect the ecx values in the upper
	  32 bits of the file offset (i.e. lseek64).
	* cpuid.c: Worked out a fallback for determining mp_synth information
	  for Intel chips which lack CPUID function 4.
	* cpuid.c: Added mechanism for determining mp_synth information from
	  CPUID function 11 information if it's available (because if it's
	  present on Intel chips, it's the only reliable way; the older
	  mechanisms return gibberish).

Fri Aug 20 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Added to synth even more Nehalem chips.
	* cpuid.c: Added 6/15 model for VIA Nano, but there's very little
	  detailed information on this chip, so that's it.
	* cpuid.c: Corrected some AMD codename confusion from 2006:
	  Dublin->ClawHammer/Odessa, Sonora->Dublin,
	  Palermo(mobile)->Georgetown/Sonora, Lancaster->Lancaster/Richmond,
	  Richmond->Taylor/Trinidad.
	* cpuid.c: Overhauled the AMD model dumping code to understand new
	  families.
	* cpuid.c: Tweaked decode_mp_synth to use ApicIdCoreIdSize, per AMD's
	  CPUID recommendations.

Thu Aug 19 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Updated synth tables for Intel Xeons.
	* cpuid.c: Removed all the "How to distinguish" comments, since
	  it seems to be very common for Intel to have indistinguishable
	  processors nowadays (the old cache-checking tricks are unreliable
	  now).
	* cpuid.c, cpuid.man: Added to synth additional Nehalem chips as I'm
	  able to hunt them down.

Wed Aug 18 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Updated synth tables for Intel Core 2, Atom,
	  Celeron, and Pentium chips based on the same cores.

Tue Aug 17 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Updated synth tables for AMD family 10h (K10)
	  and family 11h processors.
	* cpuid.c: simplified print_x_synth_amd by pruning its table down to
	  just the three families that differ from normal 1/eax simple synth,
	  and falling back on 1/eax simple synth otherwise.

Mon Aug 16 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added new steppings to synth tables using latest spec
	  updates for all AMD processor families already in them.
	* cpuid.c, cpuid.man: Updated synth tables for AMD family 0Fh (K8)
	  processors.

Fri Aug 13 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Updated raw data dump based on latest CPUID documentation
	  from Intel & AMD.
	* cpuid.c: Fixed dump of function 4 to iterate over all caches.

Thu Aug 12 2010 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Reorganized synth tables to always use extended family
	  and extended model numbers since they are so prevalent on modern
	  chips.
	* cpuid.c: Added new steppings to synth tables using latest spec
	  updates for all Intel processor families already in them.

Sun Nov 26 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Recognize Intel Core 2 Extreme Edition from brand string.
	  Thanks to Tony Freitas for explaining that Ennnn means desktop while
	  Xnnnn means Extreme Edition for those processors.

Wed Nov 22 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Recognize Itanium2 Montecito C2.
	* cpuid.c: Recognize Intel Core 2 Duo Mobile (Conroe B2).
	* cpuid.c: Recognize Intel Quad-Core Xeon Processor 5300 (Woodcrest B3)
	  and Intel Core 2 Extreme Quad-Core Processor QX6700 (Woodcrest B3).
	* cpuid.c: Recognize Intel Celeron D Processor 36x (Cedar Mill D0).
	* cpuid.c: Distinguish Core 2 Duo from Core 2 Extreme Edition based on
	  presence or absence of hyperthreading.  Thanks to Tony Seacow for
	  providing output for numerous processors and the advice about
	  hyperthreading.

Thu Nov  2 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Changed "number of logical CPU cores - 1" to "number of CPU
	  cores - 1".

Sun Sep 17 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Made the cpuid instruction (-i, --inst options) the default.
	* cpuid.c: Added -k, --kernel option to cause the kernel module to be
	   used.
	* cpuid.c: Removed confusing CPU number from output when using
	  the cpuid instruction.
	* cpuid.man: Updated with new options.
	* cpuid.c, Makefile: Changed i386 _llseek kludge to workaround
	  offsets >= 0x80000000.  Now using -D_FILE_OFFSET_BITS=64 in the
	  Makefile instead.  This should allow the i386 cpuid to work on
	  an x86_64 system.
	* cpuid.c: Added knowledge of CPU modules to synthesized field: Tulsa,
	  Woodcrest B1 (pre-production)
	* cpuid.c: In synthesized model field, properly distinguish between
	  Intel Pentium D Processor 8x0 and Intel Pentium Extreme Edition
	  Processor 840 (both Smithfields).
	* cpuid.man: Added mention of new 7100 series spec updates.
	* cpuid.spec: Changed Copyright to License.

Thu Aug 23 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Removed unnecessary one_cpu argument from do_file.
	* cpuid.c: Added -v option to display version number.

Wed Aug 23 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Tue Aug 22 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c, cpuid.man: Added -i option to use the CPUID instruction
	  directly instead of the CPUID kernel module.
	* cpuid.c: Change Pentium Processor 9x0 to 9xx because of 9x5
	  processors.
	* cpuid.man: Updated information about determining synthesized model
	  information, and added information about determining synthesized
	  multiprocessor information.

Mon Aug  7 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.proto.spec: Change URL to cpuid-specific page.

Sun Aug  6 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Sat Aug  5 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added support for differentiating Core 2 Duo CPUs from Xeon
	  5100 CPUs based on the brand string.
	* cpuid.c: Clarified that CPUID 4 ECX contains one less than the
	  number of sets.
	* cpuid.c: Added support for CPUID 5 ecx & edx.
	* cpuid.c: Added support for CPUID 6 ecx.
	* cpuid.c: Added support for CPUID 0xa eax & ebx.
	* cpuid.c: Made CPUID functions 7, 8, and 9 reserved (i.e. say nothing
	  until and unless they are defined).
	* cpuid.c: Corrected CPUID 1 ecx xTPR disabnle.

Wed Aug  2 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Corrected bug with Core 2 Duo recognition.
	* cpuid.c: Distinguish between Allendale and Conroe cores based on
	  L2 cache size.
	* cpuid.c: Added VIA C7 & C7-M names to Esther WinChip C5J core CPUs.
	* cpuid.man: Mention wikipedia pages for CPUs.

Tue Aug  1 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: On help screen, clarified that -f option reads output from
	  -r option.
	* cpuid.proto.spec: Used %{} macros for external command invocations.

Mon Jul 31 2006 Todd Allen <todd.allen@etallen.com>
	* Makefile: Removed install -o 0 -g 0 options.  For installations
	  from the tarball, the user will have to be root anyway.  And for
	  rpm, the %defattr() attribute in the spec is handling this more
	  cleanly.  Finally, those options are causing some non-root
	  installations to have to be done by the root user, which is
	  undesirable.
	* cpuid.c: Improved identification for VIA C3 (Samuel WinChip C5A core).
	* cpuid.c: Loosened up check for "Mobile AMD Athlon(tm) XP" by
	  removing "-M" suffix.
	* cpuid.c: Recognize mobile Athlon XP (Thoroughbred).

Sun Jul 30 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Fixed "deterministic cache parameters (4)", so that its
	  children aren't staggered.
	* cpuid.c: Corrected Venice and Palermo processors with DH-E3 and
	  DH-E6 steppings that had been reported as Toledo processors
	  incorrectly.
	* cpuid.c: Corrected codename for the Athlon Thoroughbred's Duron
	  counterpart: Applebred.
	* cpuid.c: Added code to distinguish Athlon XP Thortons from Bartons,
	  based on L2 cache size.
	* cpuid.c: Added code to distinguish Athlon 64 X2 Manchester E6 from
	  Athlon 64 X2 Toledo.
	* cpuid.c: Added Celeron Yonah C0.
	* cpuid.c: Added Core Yonah D0.
	* cpuid.c: Added Xeon Nocona R0 / Irwindale R0 stepping.
	* cpuid.c: Added Pentium 4 Cedar Mill C1, Pentium D Presler C1, and
	  Xeon Dempsey C1.
	* cpuid.c: Added Xeon Woodcrest B2.
	* cpuid.c: Added Core 2 Conroe B1 & B2 & Core 2 Extreme Processor B1 &
	  B2.
	* cpuid.c: Updated Itanium2 processors.
	* cpuid.man: Added Intel specification updates for new CPUs.

Wed Jul 26 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: In decode_brand, added check for "Athlon(TM) XP", equivalent
	  to "Athlon(tm) XP".
	* cpuid.c: Fixed "80000002" typo in print_80860002_eax().

Mon Jul 24 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Distinguish properly between Core Solo, Core Duo, and
	  Xeon Processor LV.  Reorganized multi-processor decoding to
	  support that.

Sun Jul 23 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed emission of raw values for cpuid code 2.
	* cpuid.c: Added -f file option to read raw hexadecimal input from a
	  file and parse it instead of executing the cpuid instruction, and
	  code reorganization to support this.

Mon May 22 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Fixed "unrecogninzed" typo in error.

Fri Apr  7 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.proto.spec: Added %defattr so that the files in the rpm's are
	  owned by "root" and not "todd".  (Why did no one scream bloody murder
	  about this before?)

Mon Apr  3 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Added code to distinguish between the two different Dual-Core
	  Xeon (Paxville A0) and Dual-Core Xeon Processor 7000 (Paxville A0).
	  Empirically, the significant differences are the VMX flag and the
	  "execution disable" flag.  The VMX flag is in an Intel-defined
	  CPUID function, so it's used.  Thanks to Jason Nicholls for providing
	  the Dual-Core Xeon (Paxville A0) output that made this possible.
	* cpuid.c: Added detection for Xeon Processor LV (Sossaman C0).

Mon Mar 13 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Fixed code that distinguished processors based on
	  presence or absence of L3 cache.  Some of the cache codes weren't
	  being recognized as L3 cache.

Sun Feb 26 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.

Wed Feb 22 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Added VMX: virtual machine extensions to CPUID function 1,
	  register ecx.
	* cpuid.c: Added SVM LBR virtualization to CPUID function 8000000a,
	  register edx.
	* cpuid.c: Fixed cut & paste header error in print_8000000a_eax.

Tue Feb 21 2006 Todd Allen <todd.allen@etallen.com>
	* cpuid.c: Renamed "hyper-threading technology" field to
	  "hyper-threading / multi-core supported" to eliminate some confusing
	  situations, such as Northwood chips which nominally support hyper-
	  threading, but where it is disabled in the chip; or where hyper-
	  threading is disabled in the BIOS; or AMD multi-core chips, which
	  indicate TRUE here, but all of which lack hyper-threading at present.
	* cpuid.c: Updated family 15 description, which had grown very stale.
	* cpuid.c: Generalized Intel Pentium D Processor 900 to 9x0.
	* cpuid.c: Added Processor Number info to Smithfield processors.

Wed Feb  8 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Use defined(i386) instead of __LONG_MAX__ to determine
	  whether or not it's necessary to use _llseek().  Fixes handling of
	  functions >= 2**31 on some build systems, like the one I used to
	  build the binary rpm.  (D'oh!)  And also indirectly affects the
	  (synth) field.
	* cpuid.c: Fix a busted error check in read_reg() that caused it to
	  return success if the read() failed and quiet was true.
	* LICENSE: Created LICENSE file (using content straight out of the
	  man page).

Tue Feb  7 2006 Todd Allen <todd.allen@etallen.com>
	* Made new release.
	* cpuid.c: Correctly distinguish Egypt/Italy processors.
	* cpuid.c: Fixed minor problems in error checking in open_file().
	* cpuid.spec: Fixed bad Packager field.
	* cpuid.spec: Include ChangeLog.
	* cpuid.man: Added -r/--raw description.
	* cpuid.man: Clarified info used for (synth) field.
	* cpuid.man: Fixed version number & date.
	* Makefile: Reworked to make it easy for people other than me to build
	  and install.
	* cpuid.spec: Used new Makefile organization
	* Makefile: Fixed production of spec file so that it's possible to
	  rebuild with the srpm without having to specify %version and
	  %release.

Mon Feb  6 2006 Todd Allen <todd.allen@etallen.com>
	* Initial public release.