diff options
author | Won Star | 2006-06-29 05:25:19 +0000 |
---|---|---|
committer | Won Star | 2006-06-29 05:25:19 +0000 |
commit | d954c5ebd5af8390416dab9a1b885c445a4bba60 (patch) | |
tree | 013299b276b33c5ef520ad1e71002b5168a2db8e | |
parent | 3a020e787617d9ae5004ffbd496b95a6d67e9ca2 (diff) | |
download | scummvm-rg350-d954c5ebd5af8390416dab9a1b885c445a4bba60.tar.gz scummvm-rg350-d954c5ebd5af8390416dab9a1b885c445a4bba60.tar.bz2 scummvm-rg350-d954c5ebd5af8390416dab9a1b885c445a4bba60.zip |
Try to use processor cache efficiently.
svn-id: r23339
-rw-r--r-- | backends/gp32/gp32std_memory.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/backends/gp32/gp32std_memory.cpp b/backends/gp32/gp32std_memory.cpp index 0fb54a5d9a..d39d3b95a3 100644 --- a/backends/gp32/gp32std_memory.cpp +++ b/backends/gp32/gp32std_memory.cpp @@ -96,18 +96,22 @@ void MemBlock::deinit() void *MemBlock::addBlock(size_t size) { int i; + MemBlock *blk = &block[prevBlock]; // some optimizaion with loop for (i = prevBlock; i < NUM_BLOCK; i++) { - if (!block[i].used) { + if (!blk->used) { break; } + blk++; } if(i == NUM_BLOCK) { + blk = &block[0]; for (i = 0; i < prevBlock; i++) { - if (!block[i].used) { + if (!blk->used) { break; } + blk++; } if(i == prevBlock) return NULL; @@ -115,9 +119,9 @@ void *MemBlock::addBlock(size_t size) byte *ptr = userMem + (i * USER_BLOCK_SIZE); - block[i].size = size; - block[i].block = ptr; - block[i].used = 1; + blk->size = size; + blk->block = ptr; + blk->used = 1; prevBlock = i; |