Optimize UpdateTimers for when wired != 0
This commit is contained in:
parent
b066192abf
commit
b483b76504
|
@ -161,12 +161,12 @@ void CSystemTimer::UpdateTimers()
|
||||||
int TimeTaken = m_LastUpdate - m_NextTimer;
|
int TimeTaken = m_LastUpdate - m_NextTimer;
|
||||||
if (TimeTaken != 0)
|
if (TimeTaken != 0)
|
||||||
{
|
{
|
||||||
uint32_t random, wired;
|
int32_t random, wired;
|
||||||
m_LastUpdate = m_NextTimer;
|
m_LastUpdate = m_NextTimer;
|
||||||
g_Reg->COUNT_REGISTER += TimeTaken;
|
g_Reg->COUNT_REGISTER += TimeTaken;
|
||||||
random = g_Reg->RANDOM_REGISTER - (TimeTaken / g_System->CountPerOp());
|
random = g_Reg->RANDOM_REGISTER - (TimeTaken / g_System->CountPerOp());
|
||||||
wired = g_Reg->WIRED_REGISTER;
|
wired = g_Reg->WIRED_REGISTER;
|
||||||
if ((int)random < (int)wired)
|
if (random < wired)
|
||||||
{
|
{
|
||||||
if (wired == 0)
|
if (wired == 0)
|
||||||
{
|
{
|
||||||
|
@ -175,10 +175,7 @@ void CSystemTimer::UpdateTimers()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint32_t increment = 32 - wired;
|
uint32_t increment = 32 - wired;
|
||||||
do
|
random += ((wired - random + increment - 1) / increment) * increment;
|
||||||
{
|
|
||||||
random += increment;
|
|
||||||
} while ((int)random < (int)wired);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
g_Reg->RANDOM_REGISTER = random;
|
g_Reg->RANDOM_REGISTER = random;
|
||||||
|
|
Loading…
Reference in New Issue