summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoaderManager.cpp
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2014-08-27 19:50:52 -0400
committercomex <comexk@gmail.com>2014-08-28 15:35:19 -0400
commitfaa26663939b07cb12c287d304649e9ae9aabac4 (patch)
tree117f0cd911811d1fa8d8f865579a70a082205962 /Source/Core/VideoCommon/VertexLoaderManager.cpp
parent7d05ebbc9b1c6ff219425c12b16e0f22d53a9fa3 (diff)
PointerWrap currently checks its mode for every individual byte of everything it 'does', including all of RAM. Make it not do that.
Decreases total Wii state save time (not counting compression) from ~570ms to ~18ms. The compiler can't remove this check because of potential aliasing; this might be fixable (e.g. by making mode const), but there is no reason to have the code work in such a braindead way in the first place. - DoVoid now uses memcpy. - DoArray now uses DoVoid on the whole rather than Doing each element (would fail for an array of STL structures, but we don't have any of those). - Do also now uses DoVoid. (In the previous version, it replicated DoVoid's code in order to ensure each type gets its own implementation, which for small types then becomes a simple load/store in any modern compiler. Now DoVoid is __forceinline, which addresses that issue and shouldn't make a big difference otherwise - perhaps a few extra copies of the code inlined into DoArray or whatever.)
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderManager.cpp')
0 files changed, 0 insertions, 0 deletions