Change some project settings. Reorganize the symbol database code, step 1/2.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@292 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2008-08-24 15:46:08 +00:00
parent e3d7c44a8e
commit f44a06465a
38 changed files with 11398 additions and 11243 deletions

View File

@ -38,6 +38,14 @@ extern int FAKE_GetFifoSize();
CDataReader_Fifo g_fifoReader;
template <class T>
void Xchg(T& a, T&b)
{
T c = a;
a = b;
b = c;
}
void ExecuteDisplayList(u32 address, u32 size)
{
IDataReader* pOldReader = g_pDataReader;
@ -46,11 +54,24 @@ void ExecuteDisplayList(u32 address, u32 size)
CDataReader_Memory memoryReader(address);
g_pDataReader = &memoryReader;
// temporarily swap dl and non-dl(small "hack" for the stats)
Xchg(stats.thisFrame.numDLPrims,stats.thisFrame.numPrims);
Xchg(stats.thisFrame.numXFLoadsInDL,stats.thisFrame.numXFLoads);
Xchg(stats.thisFrame.numCPLoadsInDL,stats.thisFrame.numCPLoads);
Xchg(stats.thisFrame.numBPLoadsInDL,stats.thisFrame.numBPLoads);
while((memoryReader.GetReadAddress() - address) < size)
{
Decode();
}
INCSTAT(stats.numDListsAlive);
// un-swap
Xchg(stats.thisFrame.numDLPrims,stats.thisFrame.numPrims);
Xchg(stats.thisFrame.numXFLoadsInDL,stats.thisFrame.numXFLoads);
Xchg(stats.thisFrame.numCPLoadsInDL,stats.thisFrame.numCPLoads);
Xchg(stats.thisFrame.numBPLoadsInDL,stats.thisFrame.numBPLoads);
INCSTAT(stats.numDListsCalled);
// reset to the old reader
g_pDataReader = pOldReader;
}