mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-18 11:42:36 +00:00
JIT: JitBaseBlockCache::valid_block is now std::vector<bool>
This was previously a std::bitset, which resulted in generation of suboptimal code by VS2013 compiler. See https://gist.github.com/kayru/753db9607d680e26194b
This commit is contained in:
parent
b58753bd69
commit
de1e2127dc
@ -108,7 +108,10 @@ using namespace Gen;
|
|||||||
}
|
}
|
||||||
links_to.clear();
|
links_to.clear();
|
||||||
block_map.clear();
|
block_map.clear();
|
||||||
valid_block.reset();
|
|
||||||
|
valid_block.clear();
|
||||||
|
valid_block.resize(VALID_BLOCK_MASK_SIZE, false);
|
||||||
|
|
||||||
num_blocks = 0;
|
num_blocks = 0;
|
||||||
memset(blockCodePointers, 0, sizeof(u8*)*MAX_NUM_BLOCKS);
|
memset(blockCodePointers, 0, sizeof(u8*)*MAX_NUM_BLOCKS);
|
||||||
}
|
}
|
||||||
|
@ -72,10 +72,11 @@ class JitBaseBlockCache
|
|||||||
int num_blocks;
|
int num_blocks;
|
||||||
std::multimap<u32, int> links_to;
|
std::multimap<u32, int> links_to;
|
||||||
std::map<std::pair<u32,u32>, u32> block_map; // (end_addr, start_addr) -> number
|
std::map<std::pair<u32,u32>, u32> block_map; // (end_addr, start_addr) -> number
|
||||||
std::bitset<0x20000000 / 32> valid_block;
|
std::vector<bool> valid_block;
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
MAX_NUM_BLOCKS = 65536*2
|
MAX_NUM_BLOCKS = 65536*2,
|
||||||
|
VALID_BLOCK_MASK_SIZE = 0x20000000 / 32,
|
||||||
};
|
};
|
||||||
|
|
||||||
bool RangeIntersect(int s1, int e1, int s2, int e2) const;
|
bool RangeIntersect(int s1, int e1, int s2, int e2) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user