1 #include <resources/processor.h>
2 #include <proto/processor.h>
6 #include "cpuspecific.h"
10 /* First byte of these strings is implementer ID */
11 static const char *vendors
[] =
14 "\x44" "Digital Equipment Corp",
15 "\x4D" "Freescale Semiconductor",
18 "\x69" "Intel Corporation",
24 static const char *features
[] =
33 void PrintCPUSpecificInfo(ULONG i
, APTR ProcessorBase
)
39 BOOL flags
[FLAGS_NUM
];
40 struct TagItem tags
[FLAGS_NUM
+ 5] =
42 {GCIT_SelectedProcessor
, i
},
43 {GCIT_Model
, (IPTR
)&part
},
44 {GCIT_Version
, (IPTR
)&version
},
45 {GCIT_Vendor
, (IPTR
)&vendor
},
46 {GCIT_SupportsVFP
, (IPTR
)&flags
[0 ]},
47 {GCIT_SupportsVFPv3
, (IPTR
)&flags
[1 ]},
48 {GCIT_SupportsNeon
, (IPTR
)&flags
[2 ]},
49 {GCIT_SupportsThumb
, (IPTR
)&flags
[3 ]},
50 {GCIT_SupportsThumbEE
, (IPTR
)&flags
[4 ]},
57 for (i
= 0; vendors
[i
]; i
++)
59 const char *name
= vendors
[i
];
61 if (name
[0] == vendor
)
63 printf("\t\t%s", &name
[1]);
70 printf("\t\tUnknown vendor (0x%X)", vendor
);
72 printf(" 0x%X revision %d variant %d\n", part
, ARM_REVISION(version
), ARM_VARIANT(version
));
74 printf("\t\tFeatures: ");
77 for (i
= 0; i
< FLAGS_NUM
; i
++)
83 printf("%s ", features
[i
]);