Henrik Rydgard
7fee5abf9f
x86/x64: Don't use a separate code block for pregenerated functions, just like on ARM
2015-10-08 22:15:28 +02:00
Henrik Rydgard
b7725c4f40
Remove empty header files
2015-10-08 18:54:33 +02:00
Unknown W. Brackets
cd842ac21f
Validate blocklinking in icache invalidate all.
...
Normally blocks are invalidated on entry. But when blocklinking is on,
we don't validate on all entries.
This fixes Tales of Rebirth crashes (#7868.)
2015-07-19 13:08:32 -07:00
Unknown W. Brackets
96b01e4999
Make sure we don't clean up proxy blocks.
2015-07-19 13:04:06 -07:00
Henrik Rydgard
844a3f19a9
Fix bugs and issues in ARM64 static alloc. Thanks unknown for finding the problem.
2015-07-11 16:59:09 +02:00
Henrik Rydgard
a0bf934796
ARM64: Some work on static allocation. Close to working, cube.elf runs 700 blocks but then hangs (?!)
2015-07-11 16:59:09 +02:00
Unknown W. Brackets
4d7a948717
arm64: Fix a dump mistake with rounding modes.
2015-06-28 16:35:46 -07:00
Unknown W. Brackets
b6612edf67
arm64: Use a cached rounding func for cvt.w.s.
...
This is much faster for this particular instruction, although not all
games even use it.
2015-06-28 12:40:29 -07:00
Jan Beich
a4eb49f009
Unbreak build with FakeJit
...
Core/MIPS/fake/FakeJit.cpp:141:46: error:
unknown type name 'FakeJitBlock'; did you mean 'JitBlock'?
const u8 *FakeJit::DoFakeJit(u32 em_address, FakeJitBlock *b)
^~~~~~~~~~~~
JitBlock
Core/MIPS/JitCommon/JitBlockCache.h:59:8: note:
'JitBlock' declared here
struct JitBlock {
^
Core/MIPS/fake/FakeJit.cpp:141:20: error:
out-of-line definition of 'DoFakeJit' does not match any declaration in
'MIPSComp::FakeJit'
const u8 *FakeJit::DoFakeJit(u32 em_address, FakeJitBlock *b)
^~~~~~~~~
Core/HLE/ReplaceTables.cpp:1044:29: error:
use of undeclared identifier 'JITFUNC'
{ "fabsf", &Replace_fabsf, JITFUNC(Replace_fabsf), REPFLAG_ALLOWINLI...
^
Core/HLE/ReplaceTables.cpp:1101:27: error:
invalid application of 'sizeof' to an incomplete type 'const
ReplacementTableEntry []'
for (int i = 0; i < (int)ARRAY_SIZE(entries); i++) {
^~~~~~~~~~~~~~~~~~~
native/math/../base/basictypes.h:67:30: note:
expanded from macro 'ARRAY_SIZE'
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
^~~
Core/HLE/ReplaceTables.cpp:1117:9: error:
invalid application of 'sizeof' to an incomplete type 'const
ReplacementTableEntry []'
return ARRAY_SIZE(entries);
^~~~~~~~~~~~~~~~~~~
native/math/../base/basictypes.h:67:30: note:
expanded from macro 'ARRAY_SIZE'
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
^~~
Core/MIPS/JitCommon/JitCommon.cpp:31:2: error:
unknown type name 'Jit'
Jit *jit;
^
Core/MIPS/JitCommon/JitCommon.cpp💯 21: error:
no member named 'Asm' in 'MIPSComp::FakeJit'
if (MIPSComp::jit->Asm().IsInSpace((u8 *)(intptr_t)addr)) {
~~~~~~~~~~~~~ ^
Core/MIPS/JitCommon/JitCommon.cpp:101:45: error:
no member named 'Asm' in 'MIPSComp::FakeJit'
*offset = addr - (uint64_t)MIPSComp::jit->Asm().GetBasePtr();
~~~~~~~~~~~~~ ^
Core/MemMap.cpp:197:57: error:
use of undeclared identifier 'MEMVIEW32_MASK'
...position, view.size, base + (view.virtual_address & MEMVIEW32_MASK));
^
2015-05-26 15:20:10 +03:00
Henrik Rydgård
071b6b986a
Best-effort update of the MipsJit prototype
2015-04-12 11:53:16 -07:00
Henrik Rydgård
d014d420db
Unify JitOptions across the backends.
...
This is required to make ExtractIR not a member of the various backends.
2015-04-12 11:41:26 -07:00
Henrik Rydgård
59d0baca93
Add way to print some block bloat stats.
2015-04-11 00:12:56 -07:00
Unknown W. Brackets
b2b20a6eee
Correct an invalid format parameter.
2015-04-08 12:17:24 -07:00
Henrik Rydgård
95cd1478de
Restore the x86 build.
2015-04-06 18:13:37 +02:00
Henrik Rydgard
57e759a605
ARM64: Fix and turn on basic block linking
2015-04-06 18:13:17 +02:00
Henrik Rydgard
cc722f09f6
Improve ARM64 disassembly by merging MOVZ+MOVK. Minor stuff.
2015-04-06 18:13:07 +02:00
Henrik Rydgard
34ab532971
ARM64 jit: Fix some pointer truncations and other fun stuff..
2015-04-06 18:13:05 +02:00
Henrik Rydgard
e7e58591da
More JIT work, not quite there yet...
2015-04-06 18:13:04 +02:00
Henrik Rydgard
b309c83973
Initial work on ARM64, based on the ARM jit.
2015-04-06 18:13:01 +02:00
Unknown W. Brackets
6c03fc4f01
Correct savestate interaction with proxy blocks.
...
At least, I think that's what's going wrong here. Either way, this is
safer and apparently fixes #7612 .
2015-03-17 23:50:20 -07:00
Unknown W. Brackets
6cc84ffdbb
jit: fix invalidation of blocks with only jr.
...
We need to expand the range not to the latest exit, but to the size of the
block.
2015-02-28 15:09:41 -08:00
Henrik Rydgard
2f6216d787
Fix bug in CwCheat icache invalidation. Fixes #7430
2015-02-04 10:56:38 +01:00
sum2012
f659e60c8d
Fix Yu-Gi-Oh 6 crash with edit card in Android version
...
This revert part of
74d8a9bdba
2015-01-13 22:01:02 +08:00
Henrik Rydgård
53ab7ab4b2
Fix FakeJit, start preparing a little for ARM64
2014-12-23 09:36:28 +01:00
Unknown W. Brackets
326c298207
armjit: Fix BKPT on simple exits.
...
If we get lucky and write a single-op destination address, we only emit
one op. So we have to check the next op before overwriting.
2014-12-22 22:56:15 -08:00
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