Commit graph

24 commits

Author SHA1 Message Date
Sacha
a0086f6412 Introduce a Fake JIT for generic builds. 2014-11-13 00:09:51 +10:00
Unknown W. Brackets
9d86d3ca9b Use std::unordered_multimaps in a few places. 2014-11-03 08:31:52 -08:00
Unknown W. Brackets
5bb9d32eaa jit: Fix partial invalidation of larger blocks.
Fixes #7031.
2014-10-27 19:04:19 -07:00
Unknown W. Brackets
4853a1b7a0 jit: Optimize proxy block lookup from address.
It was really slow before with enough proxy blocks.
2014-10-12 17:35:23 -07:00
Unknown W. Brackets
01f9521dc5 jit: Invalidate blocks even if they end unevenly.
This allows blocks to start and end where ever they need, which should be
good for replacements and for continuing.
2014-10-12 17:13:04 -07:00
Unknown W. Brackets
90821b761d x86jit: Pad linked exits with breakpoints.
So that we don't get garbage, and so we see if we end up there.
2014-10-12 16:00:58 -07:00
Unknown W. Brackets
09b9d2ad81 Keep track of ranges that have emuhack ops.
So that we can invalidate them smarter.
2014-07-05 16:25:16 -07:00
Unknown W. Brackets
dc39e75fc1 Oops, forgot about proxy blocks for replace jal.
Also fix a crash when they are used.
2014-04-17 01:03:46 -07:00
Henrik Rydgard
58237d976f Fix performance issue in BlockCache due to an instance of std::vector in every block:
Avoid creating the vector when not necessary.

This was especially noticeable in debug mode.
2014-03-29 22:26:51 +01:00
Henrik Rydgård
28a518bfa7 Reformat JitBlockCache 2013-12-19 13:34:06 +01:00
Henrik Rydgård
2eb1f89ad0 Rework proxy blocks a bit 2013-12-19 13:31:13 +01:00
Henrik Rydgård
3957b5fb42 Call ProxyBlock in ArmJit too. Plus various cleanup and one more string function. 2013-12-19 11:45:39 +01:00
Henrik Rydgard
1cb7965cb1 Jit feature preparation: Introduce "proxy blocks".
When these are invalidated, the block they point to gets invalidated too.

Will be useful to implement various types of block merging and function inlining
without affecting correctness of cache clears etc.

Also, with this commit we can now fully inline replaced functions. fabsf() boils
down to 1-2 instructions and the block continues, for example.
2013-12-19 00:39:49 +01:00
Henrik Rydgard
2d8429ac48 Assorted cleanup in the MIPS emulation 2013-12-10 13:15:16 +01:00
Unknown W. Brackets
5d2ff64252 Support for modified jit-enabled VerySleepy.
This allows profiling the jit.  Should have zero perf impact when not
in use, since it's entirely triggered by VerySleepy.
2013-11-30 19:20:21 -08:00
Unknown W. Brackets
394d91371f Avoid clearing the jit cache on savestate.
Downside: saving state could "fix" some issues with games detecting jit,
which won't happen anymore.

However, it's now faster to savestate.
2013-09-29 14:26:13 -07:00
Henrik Rydgard
b661ae6c41 Add very simple jit viewer screen to dev menu. Add untested emitter for cvt.f32.f16 & c:o. 2013-09-29 13:41:56 +02:00
Unknown W. Brackets
109ad17ac6 Use a typesafe struct for opcodes.
Also, correctly read delayslots using Read_Instruction on ARM.
2013-08-24 15:36:24 -07:00
Henrik Rydgård
a678621caf Merge pull request #3191 from Ced2911/ppc_basic
ppc support + ppc jit
2013-08-16 12:16:49 -07:00
Ced2911
1a5c6b59c5 add ppc jit 2013-08-16 14:40:29 +02:00
Unknown W. Brackets
14b719a7ac Make it possible to have more block exits. 2013-08-16 00:12:49 -07:00
Henrik Rydgard
6f4ad05582 Remove some unused code, add some stubs to vfpu jit, some cleanup 2013-04-27 19:35:42 +02:00
Henrik Rydgard
2a39a3b972 JIT: Get rid of one memory access per dispatch, and get rid of blockcodepointers. 2013-04-27 01:32:03 +02:00
Henrik Rydgard
9eace8a80e Combine the two JitCache implementations (x86, ARM) into one. 2013-04-27 01:32:03 +02:00
Renamed from Core/MIPS/x86/JitCache.h (Browse further)