mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 22:50:43 +00:00
Return a fixed frequency of 1193182 Hz for the Performance Counter.
This commit is contained in:
parent
c1b4d7d16f
commit
47fe880924
@ -188,7 +188,8 @@ BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER counter)
|
|||||||
/* i586 optimized version */
|
/* i586 optimized version */
|
||||||
__asm__ __volatile__ ( "rdtsc"
|
__asm__ __volatile__ ( "rdtsc"
|
||||||
: "=a" (counter->u.LowPart), "=d" (counter->u.HighPart) );
|
: "=a" (counter->u.LowPart), "=d" (counter->u.HighPart) );
|
||||||
counter->QuadPart = counter->QuadPart / 1000; /* see below */
|
/* see below */
|
||||||
|
counter->QuadPart = counter->QuadPart / ( cpuHz / 1193182 ) ;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -219,10 +220,12 @@ BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER frequency)
|
|||||||
{
|
{
|
||||||
#if defined(__i386__) && defined(__GNUC__)
|
#if defined(__i386__) && defined(__GNUC__)
|
||||||
if (IsProcessorFeaturePresent( PF_RDTSC_INSTRUCTION_AVAILABLE )) {
|
if (IsProcessorFeaturePresent( PF_RDTSC_INSTRUCTION_AVAILABLE )) {
|
||||||
/* The way Windows calculates this value is unclear, however simply using the CPU frequency
|
/* On a standard PC, Windows returns the clock frequency for the
|
||||||
gives a value out by approximately a thousand. That can cause some applications to crash,
|
* 8253 Programmable Interrupt Timer, which has been 1193182 Hz
|
||||||
so we divide here to make our number more similar to the one Windows gives */
|
* since the first IBM PC (cpuHz/4). There are applications that
|
||||||
frequency->QuadPart = cpuHz / 1000;
|
* crash when the returned frequency is much higher or lower, so
|
||||||
|
* do not try to be smart */
|
||||||
|
frequency->QuadPart = 1193182;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user