Henrik Rydgard
1851458628
Bugfixes
2016-05-12 20:28:59 +02:00
Henrik Rydgard
6e44e97ffa
Refactor prep: Split JitInterface into MIPSFrontendInterface and JitInterface
2016-05-09 19:41:39 +02:00
Henrik Rydgard
f8659b8e1e
Move the IR interpreter out into its own file. Rename it in the UI. First CMake and Android fixes.
2016-05-08 22:06:13 +02:00
Henrik Rydgard
492ea5fac4
Address a bunch of comments, thanks for the review
2016-05-08 21:38:03 +02:00
Henrik Rydgard
49a6a2f6cf
Minor refactor - let's not access a global when we don't need to
2016-05-06 21:22:36 +02:00
Henrik Rydgard
8b450c8034
Merge NativeJit.cpp/h with JitCommon.cpp/h
2016-05-01 11:39:59 +02:00
Henrik Rydgard
5aadce59a2
Move architecture-specific code out of JitBlockCache
2016-05-01 11:39:58 +02:00
Henrik Rydgard
a5be0976bd
Remove preprocessor hacks to choose JIT implementation.
...
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.
Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Unknown W. Brackets
8713e532e0
arm64jit: Log if HI is set an an imm.
2016-01-20 23:26:49 -08:00
Henrik Rydgard
dedcc149d8
ARM64: Fix typo in mfhi and mflo instructions. May help #8383
2016-01-19 23:26:43 +01:00
Unknown W. Brackets
0fc774927f
jit: Minor cleanups.
2016-01-10 12:28:29 -08:00
Unknown W. Brackets
3ec7404d2d
Jit: Always link RA, even if branch not taken.
...
The ops don't write RA conditionally.
2015-12-27 20:47:15 -08:00
Unknown W. Brackets
3735dc7c16
arm64: Fix crash on not-nice jr delay slot.
...
These are very rare, I only caught this while debugging with nice
disabled. But it could happen.
2015-10-17 01:22:26 -07:00
Unknown W. Brackets
387ebf3ddd
arm64: Only clobber HI and LO together.
...
We can't clobber LO if HI is still needed. Fixes a crash in Trails in
the Sky on new game (due to a mfhi getting the wrong result.)
2015-10-17 01:21:51 -07:00
Henrik Rydgard
92f7f459dc
Not safe to change the rounding mode function pointer in GenerateCode
2015-10-10 16:46:07 +02:00
Henrik Rydgard
65ee3723d3
ARM64: Don't update currentRoundingFunc unless necessary.
2015-10-10 14:33:01 +02:00
Henrik Rydgard
70239f1611
Fix another rounding bug. ARM64 passes the fpu test again.
2015-10-10 13:30:30 +02:00
Henrik Rydgard
a6294f3e2d
Now the three backends actually do the same thing with rounding. Fixes a bug in the x86 backend, too.
2015-10-10 13:11:38 +02:00
Henrik Rydgard
30555f31ca
ARM64 typo fix. Add a couple of worrying comments...
2015-10-10 11:56:59 +02:00
Henrik Rydgard
8914cd9914
ARM64 disassembler improvements (show many kinds of branch targets properly)
2015-10-10 11:27:28 +02:00
Henrik Rydgard
d628b9b57b
Minor fixes, mostly comments
2015-10-10 10:03:34 +02:00
Henrik Rydgard
b2b5f3424f
Fix for 32-bit ARM
2015-10-08 23:11:57 +02:00
Henrik Rydgard
c41baab747
Pregenerate code to handle rounding mode switches. This time, for all three cores.
2015-10-08 19:58:37 +02:00
Henrik Rydgard
b7725c4f40
Remove empty header files
2015-10-08 18:54:33 +02:00
Henrik Rydgard
8a3c96a413
ARM64: Don't need to avoid destroying SCRATCH1 in these functions.
2015-10-08 14:54:43 +02:00
Henrik Rydgard
bfed830f91
Remove the ability to disable rounding mode support. It's time.
2015-10-08 14:54:42 +02:00
Henrik Rydgard
6dd86cd843
Get rid of the ForceFlushToZero hidden config option
2015-10-08 14:54:41 +02:00
Henrik Rydgard
42ce836ba5
Some minor renames and cleanups
2015-10-08 14:43:16 +02:00
Henrik Rydgard
5f4145238a
Fix #8034 . Cannot leave IMMs or REGIMM in statically allocated registers after a FlushAll.
2015-10-08 14:39:21 +02:00
Unknown W. Brackets
3301a347b3
arm64: Dumb typo, oops.
2015-09-12 11:56:33 -07:00
Unknown W. Brackets
dd548ba12c
arm64: Check for unordered in vmin/vmax.
2015-09-08 20:07:10 -07:00
Unknown W. Brackets
9b94266c4a
arm64: Avoid overflow in imm math.
2015-08-30 13:00:18 -07:00
Unknown W. Brackets
9262ddfc13
Avoid any possible shifts by 32.
2015-07-19 13:25:50 -07:00
Henrik Rydgard
47f68ae3a3
ARM64 store optimization bugfix
2015-07-16 00:25:32 +02:00
Henrik Rydgard
ccd77cfb7a
ARM64 stores: Use WZR for any zero immediates.
2015-07-15 20:01:36 +02:00
Henrik Rydgard
8b05e27259
ARM64 regalloc: Map more registers
2015-07-11 23:53:06 +02:00
Henrik Rydgard
9fe382ad18
ARM64: Shortcut moves between gpr and vfpu when not mapped
2015-07-11 23:53:06 +02:00
Henrik Rydgard
56f9aaa164
ARM64: Store zeroes using WZR
2015-07-11 23:53:05 +02:00
Henrik Rydgård
1ba2b1cfae
Merge pull request #7855 from hrydgard/static-alloc
...
ARM64 jit: Statically allocate a few registers, including SP
2015-07-11 18:13:47 +02:00
Henrik Rydgard
2e937b2d10
use the DiscardR function. Remove an old TODO
2015-07-11 17:17:54 +02:00
Henrik Rydgard
b73920fcba
ARM64: Cleanups in regcache and jit
2015-07-11 17:00:01 +02:00
Henrik Rydgard
444fc0885c
Fix the crash bug (need to mark static non-pointer regs as depointerified on flush)
2015-07-11 16:59:14 +02:00
Henrik Rydgard
2a8560e522
ARM64: Another pair of fixes for static alloc. Still crashes in many games...
2015-07-11 16:59:14 +02:00
Henrik Rydgard
d1bbc1d3c0
More regcache fixes. ML_IMM works now although there is another stability issue somewhere.
2015-07-11 16:59:13 +02:00
Henrik Rydgard
568e2abb2b
Save/load static registers around replacement funcs
2015-07-11 16:59:13 +02:00
Henrik Rydgard
1b8549b26f
Couple more regcache fixes
2015-07-11 16:59:12 +02:00
Henrik Rydgard
4920f3e3c1
Work towards handling ML_IMM in static registers but doesn't work yet (enable on line 649)
2015-07-11 16:59:11 +02:00
Henrik Rydgard
f42f81a4da
ARM64: Optimize small adjustments of pointerified registers
2015-07-11 16:59:11 +02:00
Henrik Rydgard
9af6abd8a1
ARM64: Support pointerified static allocs, statically allocate SP
2015-07-11 16:59:10 +02: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