@@ -143,7 +143,7 @@ XRCORE_API u64 qpc_freq = 0;
143
143
XRCORE_API u64 qpc_overhead = 0 ;
144
144
XRCORE_API u32 qpc_counter = 0 ;
145
145
146
- XRCORE_API _processor_info ID;
146
+ XRCORE_API processor_info ID;
147
147
148
148
XRCORE_API u64 QPC ()
149
149
{
@@ -164,7 +164,7 @@ u64 __fastcall GetCLK(void)
164
164
void Detect ()
165
165
{
166
166
// General CPU identification
167
- if (!_cpuid (&ID))
167
+ if (!query_processor_info (&ID))
168
168
{
169
169
// Core.Fatal ("Fatal error: can't detect CPU/FPU.");
170
170
abort ();
@@ -234,43 +234,46 @@ bool g_initialize_cpu_called = false;
234
234
// ------------------------------------------------------------------------------------
235
235
void _initialize_cpu (void )
236
236
{
237
- Msg (" * Detected CPU: %s [%s], F%d/M%d/S%d, %.2f mhz, %d-clk 'rdtsc'" , CPU::ID.model_name , CPU::ID.v_name ,
238
- CPU::ID.family , CPU::ID.model , CPU::ID.stepping , float (CPU::clk_per_second / u64 (1000000 )),
239
- u32 (CPU::clk_overhead));
237
+ Msg (" * Detected CPU: %s [%s], F%d/M%d/S%d, %.2f mhz, %d-clk 'rdtsc'" ,
238
+ CPU::ID.modelName , CPU::ID.vendor ,
239
+ CPU::ID.family , CPU::ID.model , CPU::ID.stepping ,
240
+ float (CPU::clk_per_second / u64 (1000000 )),
241
+ u32 (CPU::clk_overhead)
242
+ );
240
243
241
244
// DUMP_PHASE;
242
245
243
246
if (strstr (Core.Params , " -x86" ))
244
247
{
245
- CPU::ID.feature &= ~_CPU_FEATURE_MMX ;
246
- CPU::ID.feature &= ~_CPU_FEATURE_3DNOW ;
247
- CPU::ID.feature &= ~_CPU_FEATURE_SSE ;
248
- CPU::ID.feature &= ~_CPU_FEATURE_SSE2 ;
249
- CPU::ID.feature &= ~_CPU_FEATURE_SSE3 ;
250
- CPU::ID.feature &= ~_CPU_FEATURE_SSSE3 ;
251
- CPU::ID.feature &= ~_CPU_FEATURE_SSE4_1 ;
252
- CPU::ID.feature &= ~_CPU_FEATURE_SSE4_2 ;
248
+ CPU::ID.hasFeature (CpuFeature::FEATURE_MMX) ;
249
+ CPU::ID.hasFeature (CpuFeature::FEATURE_3DNOW) ;
250
+ CPU::ID.hasFeature (CpuFeature::FEATURE_SSE) ;
251
+ CPU::ID.hasFeature (CpuFeature::FEATURE_SSE2) ;
252
+ CPU::ID.hasFeature (CpuFeature::FEATURE_SSE3) ;
253
+ CPU::ID.hasFeature (CpuFeature::FEATURE_SSSE3) ;
254
+ CPU::ID.hasFeature (CpuFeature::FEATURE_SSE41) ;
255
+ CPU::ID.hasFeature (CpuFeature::FEATURE_SSE41) ;
253
256
};
254
257
255
258
string256 features;
256
259
xr_strcpy (features, sizeof (features), " RDTSC" );
257
- if (CPU::ID.feature & _CPU_FEATURE_MMX )
260
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_MMX) )
258
261
xr_strcat (features, " , MMX" );
259
- if (CPU::ID.feature & _CPU_FEATURE_3DNOW )
262
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_3DNOW) )
260
263
xr_strcat (features, " , 3DNow!" );
261
- if (CPU::ID.feature & _CPU_FEATURE_SSE )
264
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSE) )
262
265
xr_strcat (features, " , SSE" );
263
- if (CPU::ID.feature & _CPU_FEATURE_SSE2 )
266
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSE2) )
264
267
xr_strcat (features, " , SSE2" );
265
- if (CPU::ID.feature & _CPU_FEATURE_SSE3 )
268
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSE3) )
266
269
xr_strcat (features, " , SSE3" );
267
- if (CPU::ID.feature & _CPU_FEATURE_SSSE3 )
270
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSSE3) )
268
271
xr_strcat (features, " , SSSE3" );
269
- if (CPU::ID.feature & _CPU_FEATURE_SSE4_1 )
272
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSE41) )
270
273
xr_strcat (features, " , SSE4.1" );
271
- if (CPU::ID.feature & _CPU_FEATURE_SSE4_2 )
274
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSE42) )
272
275
xr_strcat (features, " , SSE4.2" );
273
- if (CPU::ID.feature & _CPU_FEATURE_HTT )
276
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_HT) )
274
277
xr_strcat (features, " , HTT" );
275
278
276
279
Msg (" * CPU features: %s" , features);
@@ -304,7 +307,7 @@ void _initialize_cpu_thread()
304
307
xrDebug::OnThreadSpawn ();
305
308
if (!Core.PluginMode )
306
309
FPU::m24r ();
307
- if (CPU::ID.feature & _CPU_FEATURE_SSE )
310
+ if (CPU::ID.hasFeature (CpuFeature::FEATURE_SSE) )
308
311
{
309
312
// _mm_setcsr ( _mm_getcsr() | (_MM_FLUSH_ZERO_ON+_MM_DENORMALS_ZERO_ON) );
310
313
_MM_SET_FLUSH_ZERO_MODE (_MM_FLUSH_ZERO_ON);
0 commit comments