Commit graph

186 commits

Author SHA1 Message Date
Henrik Rydgård
a9be90229a Merge pull request #7140 from AbandonedCart/master
use libc++ for iOS to avoid additional directives
2014-12-18 22:38:14 +01:00
Henrik Rydgard
a54e0cf244 Goodbye PowerPC, you can always be resurrected when the time comes 2014-12-16 21:58:38 +01:00
Henrik Rydgard
4ec30d98e1 Port the x86 and ARM emitters over to use the generic CodeBlock class 2014-12-15 22:32:55 +01:00
Henrik Rydgard
05a8e2e35d Some work towards being able to build two JITs together
This will be useful for testing/debugging, but not there yet.
2014-12-13 21:13:54 +01:00
Henrik Rydgard
8ad1ea4c84 Split JitCommon.h so that you can include it without getting the "NativeJit" definition 2014-12-13 21:13:28 +01:00
Henrik Rydgard
75a9420b21 Reduce the number of places we include JitCommon.h. Update native. 2014-12-12 23:49:08 +01:00
Henrik Rydgard
50bb3e1e05 Minor fixes 2014-12-08 00:18:13 +01:00
Henrik Rydgard
51d55bd645 Namespacing cleanup (it's bad to do "using namespace" in a header) 2014-12-07 14:44:15 +01:00
Henrik Rydgard
4457dca4c9 Rename the ARM Jit class to ArmJit 2014-12-07 14:25:22 +01:00
TwistedUmbrella
3f4d58b0b2 use libc++ for iOS to avoid additional directives 2014-12-05 19:47:02 -05:00
Henrik Rydgard
1abadef87f Add "resolving" of a few symbols to x86 disassembler 2014-12-02 01:00:11 +01:00
Henrik Rydgard
8f016d3e48 Merge some matrix utils and stuff from the NEON branch 2014-11-29 11:37:45 +01:00
xSacha
88b1c00a67 MIPS: Complete MIPSX rename for buildfix. 2014-11-19 07:55:44 +10:00
xSacha
3172fa22e2 Integrate new MIPS emitter. 2014-11-18 08:40:57 -08:00
Henrik Rydgard
3298c1143f Arm disasm: Coalesce multiple "BKPT 1" like we do on x86 for INT 3 2014-11-17 21:21:44 +01:00
Henrik Rydgard
74d8a9bdba Clean up after the block linker. armdis: add BKPT 2014-11-17 21:21:34 +01:00
Sacha
a0086f6412 Introduce a Fake JIT for generic builds. 2014-11-13 00:09:51 +10:00
Henrik Rydgard
db853d8513 Collapse sequences of "int3" (padding after block linking) in x86 disassembly. 2014-11-09 12:10:37 +01:00
Henrik Rydgard
5bcdecc26b unittest: Have the JIT harness print disassembly, to make it easy to inspect results. 2014-11-09 12:03:04 +01:00
Unknown W. Brackets
ad6b176e11 Naturally, modern C++ would not build on Symbian. 2014-11-03 08:56:45 -08:00
Unknown W. Brackets
61c21340fb Warning fixes. 2014-11-03 08:34:34 -08:00
Unknown W. Brackets
9d86d3ca9b Use std::unordered_multimaps in a few places. 2014-11-03 08:31:52 -08:00
Unknown W. Brackets
258b7c9a7c jit: Use the end just to be safe.
In case clearing near the end of a block.
2014-10-27 19:05:52 -07: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
0c1dcfeacf Avoid comparing invalidated iterators. 2014-10-22 00:50:39 -07:00
Unknown W. Brackets
65ecc9a464 jit: Use an exclusive end in the block map.
Simpler, was not consistent before, oops.
2014-10-21 11:52:19 -07:00
Unknown W. Brackets
ef6d583542 x86jit: Oops, don't pad INT3s in prelinked blocks.
Fixes #7007.
2014-10-15 22:07:56 -07:00
Unknown W. Brackets
040a6d1745 jit: Improve performance of clearing jit. 2014-10-12 19:00:03 -07:00
Unknown W. Brackets
e6373aaed9 jit: Remove from the block map more carefully. 2014-10-12 17:47:07 -07:00
Unknown W. Brackets
2e81a38892 jit: Fix a possible infinite loop in invalidation. 2014-10-12 17:46:54 -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
d98adf27d6 x86jit: Add proxy blocks for continuing. 2014-10-12 17:15:31 -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
928e2adfc9 jit: Avoid applying/restoring the rounding mode.
If the game never sets it, we can skip around syscalls, interpreter,
replacements, etc.
2014-10-12 12:51:45 -07:00
Henrik Rydgard
808f05da89 (Partially) slip thin3d underneath DrawBuffer. 2014-08-22 20:54:53 +02: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
Henrik Rydgård
585050de27 Fix crash in block cache 2014-05-27 22:02:20 +02:00
Unknown W. Brackets
95dcadb6ae Ignore when a proxied block points to erased mem.
Happens for example when a new module is loaded, sometimes.
2014-05-04 01:25:19 -07:00
Unknown W. Brackets
7326c6e716 Fix a race condition on shutdown with hashmap.
Also, always need to init the blocks, they are not zero initialized.
2014-04-20 21:44:10 -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
Unknown W. Brackets
a843cbd580 Shrink the very common sceKernelThread.h include. 2014-03-15 11:44:02 -07:00
Henrik Rydgard
ef6e6083dc Including <cstddef> here was reported to fix a build problem. 2014-02-07 23:05:03 +01:00
lioncash
aaf834c032 Fix the destruction proxy blocks in DestroyBlock() in JitBlockCache.cpp.
Prior to this, it was possible for the wrong block to be deleted multiple times.
2014-02-03 14:40:37 -05:00
Unknown W. Brackets
fe2b62c27d Make the "on change" checkbox for memchecks work.
But, for now, only on sw and similar instructions, the rest don't work
yet and just always break.
2014-01-26 11:57:39 -08:00
Unknown W. Brackets
79864a5ee0 Fix some initialization order warnings. 2014-01-10 22:21:24 -08: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