1 #include <resources/processor.h>
2 #include <proto/processor.h>
7 #include "cpuspecific.h"
13 static const char *features
[] =
31 void PrintCPUSpecificInfo(char *buffer
, LONG bufsize
, ULONG i
, APTR ProcessorBase
)
34 char *bufptr
= buffer
;
37 BOOL flags
[FLAGS_NUM
];
38 struct TagItem tags
[FLAGS_NUM
+ 2] =
40 {GCIT_SelectedProcessor
, i
},
41 {GCIT_SupportsFPU
, (IPTR
)&flags
[0 ]},
42 {GCIT_SupportsMMX
, (IPTR
)&flags
[1 ]},
43 {GCIT_SupportsMMXEXT
, (IPTR
)&flags
[2 ]},
44 {GCIT_Supports3DNOW
, (IPTR
)&flags
[3 ]},
45 {GCIT_Supports3DNOWEXT
, (IPTR
)&flags
[4 ]},
46 {GCIT_SupportsSSE
, (IPTR
)&flags
[5 ]},
47 {GCIT_SupportsSSE2
, (IPTR
)&flags
[6 ]},
48 {GCIT_SupportsSSE3
, (IPTR
)&flags
[7 ]},
49 {GCIT_SupportsSSSE3
, (IPTR
)&flags
[8 ]},
50 {GCIT_SupportsSSE41
, (IPTR
)&flags
[9 ]},
51 {GCIT_SupportsSSE42
, (IPTR
)&flags
[10]},
52 {GCIT_SupportsSSE4A
, (IPTR
)&flags
[11]},
53 {GCIT_SupportsNoExecutionBit
, (IPTR
)&flags
[12]},
54 {GCIT_Supports64BitMode
, (IPTR
)&flags
[13]},
60 snprintf(bufptr
, bufsize
, "Features: ");
61 slen
= strlen(bufptr
);
65 for (i
= 0; bufsize
> 1 && i
< FLAGS_NUM
; i
++)
70 snprintf(bufptr
, bufsize
, "%s ", features
[i
]);
71 slen
= strlen(bufptr
);
81 sprintf(bufptr
, "None");
82 slen
= strlen(bufptr
);
86 sprintf(bufptr
, "\n");