Lioncash
f6c21e002b
General: Remove unnecessary semicolons
2017-07-30 16:39:53 -04:00
Tillmann Karras
9a2bef97da
JitCache: use SymbolDB names as JIT block names
2017-06-18 06:58:44 +01:00
Lioncash
b676edd80c
Core: include what you use
...
Eliminates a swath of indirectly included standard headers
2017-06-07 01:20:48 -04:00
MerryMage
cac77527e9
Jit64: Make psq_lXX PIE-compliant
2017-04-14 11:52:33 +01:00
Lioncash
8d98ac6509
CPU: Convert state enum to an enum class
...
Gets enum constants out of the immediate namespace. Also makes it
strongly typed like the other state enums.
2017-03-28 11:48:28 -04:00
Lioncash
0d1bc53e55
JitBase: Rename MergeAllowedNextInstructions to CanMergeNextInstructions
...
This is more indicative that it's checking for something
2017-03-21 13:50:03 -04:00
Lioncash
f98211bfcf
JitBase: Make MergeAllowedNextInstructions a const member function
2017-03-21 13:45:18 -04:00
MerryMage
b0d6c29073
JitAsmCommon: Add missing sizes to constant arrays
...
This allows generic code to determine the size of these arrays.
2017-03-20 20:21:41 +00:00
Lioncash
c6200a5b07
JitInterface: Convert includes into forward declarations where applicable
2017-03-02 13:20:29 -05:00
aldelaro5
9ad6c8f334
Make memory breakpoint faster
...
Currently, slowmem is used at any time that memory breakpoints are in use. This commit makes it so that whenever the DBAT gets updated, if the address is overllaping any memchecks, it forces the use of slowmem. This allows to keep fastmem for any other cases and noticably increases performance when using memory breakpoints.
2017-03-02 04:46:27 -05:00
aldelaro5
52fe05af6b
Make memory breakpoint faster
...
Currently, slowmem is used at any time that memory breakpoints are in use. This commit makes it so that whenever the DBAT gets updated, if the address is overllaping any memchecks, it forces the use of slowmem. This allows to keep fastmem for any other cases and noticably increases performance when using memory breakpoints.
2017-02-28 13:02:04 -05:00
degasus
ffa61fcf57
JitCache: Also unlink exits of the current block.
...
We might still be in the current block. This is fine, but the next one might also be invalidated later on. But we may never also call the next one.
2017-02-27 23:50:16 +01:00
degasus
c1ddc2678e
JitCache: Fix removing of blocks.
2017-02-27 23:50:16 +01:00
Lioncash
359528b805
JitBase: Put constructor and destructor in the cpp file
...
As this is a base class with virtuals, there needs to be an out-of-line
function definition to prevent the vtable of the class being placed within
every translation unit it's used in (i.e. every JIT implementation).
2017-02-23 13:50:47 -05:00
degasus
384efb0cb2
JitArm64: Initial implementation of the BLR optimization.
2017-02-02 09:06:34 +01:00
degasus
d3aee2de08
JitCache: Split off JIT call from dispatcher.
...
This avoid flushing the BLR optimization stack on fast_block_cache misses.
2017-01-25 01:51:19 +01:00
Florent Castelli
a7bf9271b5
Fix missing includes
2017-01-24 03:31:51 +01:00
degasus
7f6b8e3555
JitCache: Extract ErasePhysicalRange as function.
2017-01-23 20:33:44 +01:00
degasus
70caf447b9
JitCache: Get physical addresses from PPCAnalyst.
...
So we support all kind of degenerated blocks now, not just range+length based ones.
2017-01-23 20:33:44 +01:00
degasus
f3ed993747
JitCache: Use a map with macro blocks for the occupied memory regions.
...
This also allow fast invalidation, without any restritions on the blocks itself.
So we can now implement inlining.
2017-01-23 20:33:44 +01:00
degasus
dc0fbc15f0
JitCache: Drop block_map.
...
It is only used for invalidation, and in a bad way. Just scan over all elements,
as it is still in O(n), this shouldn't matter much.
2017-01-23 20:33:44 +01:00
degasus
819ebfb213
JitCache: Freeing hotfix.
...
Sorry, I'm too stupid to test my code.
2017-01-23 06:58:02 +01:00
degasus
8e00c411a3
JitCache::Rename iCache to fast_block_map.
...
iCache sounds too much like emulation.
2017-01-22 17:10:28 +01:00
degasus
830ae6a2c1
JitCache: Store the JitBlock in the std::map.
2017-01-22 16:50:46 +01:00
degasus
9b77a39767
JitCache: Only call DestroyBlock on valid blocks.
2017-01-22 16:50:46 +01:00
degasus
113d6b3b84
JitCache: Use a multimap for block_map and start_block_map.
...
We may have duplicated entries here because of MSR mismatch. Just
store both and validate the matching one on cache access.
2017-01-22 16:50:46 +01:00
degasus
9d58127dec
JitCache: Move JitBlock config variable.
2017-01-22 16:50:46 +01:00
degasus
352909fc4c
JitCache: Track the ICache entry of jit blocks.
...
This guarantees that no invalidated jit block is still in the icache.
2017-01-22 16:50:14 +01:00
degasus
c9c5437cb8
JitCache: Fix links_to updates on destroying blocks.
2017-01-22 11:37:22 +01:00
degasus
fe41ed7fa1
JitCache: Use pointers in the ICache and dispatchers.
2017-01-12 21:43:28 +01:00
degasus
a8b26937f3
JitCache: Clean up GetBlockFromStartAddress.
2017-01-12 20:24:43 +01:00
degasus
214f37ecef
JitCache: Rename variables.
2017-01-12 20:23:14 +01:00
degasus
3ee178abe7
JitCache: Drop unused functions.
2017-01-12 20:23:14 +01:00
degasus
7e850361fb
JitCache: Add a helper function to iterate over all blocks.
2017-01-12 20:23:14 +01:00
degasus
ca026b58ab
JitCache: Use a pointer in links_to.
2017-01-12 20:23:14 +01:00
degasus
928ccbef53
JitCache: Use a pointer in block_map.
2017-01-12 20:23:14 +01:00
degasus
74a27d9742
JitCache: Use a pointer in start_block_map.
2017-01-12 20:23:14 +01:00
degasus
2d5288dc10
JitCache: Return a pointer in AllocateBlock.
2017-01-12 20:23:14 +01:00
degasus
f14cebf079
JitCache: Use a pointer in FinalizeBlock.
2017-01-12 20:23:14 +01:00
degasus
d3aa8c8080
JitCache: Return a pointer in GetBlockFromStartAddress.
2017-01-12 20:23:14 +01:00
degasus
f6ec96efbd
JitCache: Use a pointer in DestroyBlock.
2017-01-12 20:23:14 +01:00
degasus
68c85d32f7
JitCache: Use a pointer in UnlinkBlock.
2017-01-12 20:23:14 +01:00
degasus
eb390f3020
JitCache: Use a pointer in LinkBlock.
2017-01-12 20:23:14 +01:00
degasus
ccb8c44a5a
JitCache: Use a pointer in LinkBlockExits.
2017-01-12 20:23:14 +01:00
Lioncash
37d10064b8
JitCache: Get rid of reliance on the JIT global variable
2017-01-09 04:43:06 -05:00
Lioncash
2b8ede8dc6
JitCache: Move implementation details into the cpp file
2017-01-09 04:43:04 -05:00
Lioncash
cf18aeb1eb
JitCache: Move private class details below public details
...
Also organizes cpp file organization to match the function layout.
2017-01-09 04:42:59 -05:00
Léo Lam
8bef7259e3
Add the g_ prefix to the jit global
...
Jan 04 22:55:01 <leoetlino> fwiw, it looks like there are new warnings in the RegCache code
Jan 04 22:55:04 <leoetlino> Source/Core/Core/PowerPC/Jit64/FPURegCache.cpp:13:33: warning: declaration shadows a variable in the global namespace [-Wshadow]
Jan 04 22:56:19 <@Lioncash> yeah, the jit global should have a g_ prefix.
This fixes shadowing warnings and adds the g_ prefix to a global.
2017-01-07 23:19:49 +01:00
Lioncash
36c99df9f5
Jit: Move most x86-64-specific code out of JitCommon
2016-12-14 04:43:25 -05:00
degasus
21f3e97435
Jit64: Avoid pointer casts if possible.
2016-12-04 13:09:16 +01:00