mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-11-03 13:01:12 +01:00
gsdx tc: use unsigned constant
Help the compiler to generate better code
C code:
uint32 addr = (i >> 3u) % MAX_BLOCKS;
uint32 row = addr >> 5u;
uint32 col = 1 << (addr & 31u);
ASM Before
f48: mov eax,esi
f4a: mov ecx,esi
f4c: mov edx,DWORD PTR [ebp+0x8]
f4f: sar eax,0x1f
f52: sar ecx,0x3
f55: shr eax,0x12
f58: add ecx,eax
f5a: and ecx,0x3fff
f60: sub ecx,eax
f62: mov eax,0x1
f67: shl eax,cl
f69: shr ecx,0x5
f6c: lea edx,[edx+ecx*4]
ASM After
f48: mov ecx,edi
f4a: mov eax,0x1
f4f: sar ecx,0x3
f52: shl eax,cl
f54: shr ecx,0x3
f57: and ecx,0x7fc
f5d: add ecx,DWORD PTR [ebp+0x8]
This commit is contained in:
1 parent
da054a2aab
commit
cf71049bd4
4 files changed
+17
-17
No files matched your search
@@ -125,9 +125,9 @@ void GSTextureCacheSW::RemoveAll()
|
||||
|
||||
m_textures.clear();
|
||||
|
||||
for(int i = 0; i < MAX_PAGES; i++)
|
||||
for(auto& l : m_map)
|
||||
{
|
||||
m_map[i].clear();
|
||||
l.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user