Commit Graph

311 Commits

Author SHA1 Message Date
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