Commit Graph

976 Commits

Author SHA1 Message Date
Ryan Houdek 9407797d16 Merge pull request #2454 from Sonicadvance1/armv7_disable_loadstores
[ARMv7] Extend the life of the JIT Recompiler.
2015-06-02 10:42:06 -04:00
Tillmann Karras d516e6bbf0 Jit64: swap XMM registers for later optimization
(BLENDVPD uses XMM0 as an implicit mask.)
2015-06-02 12:47:07 +02:00
Ryan Houdek 5ed3a5de22 [AArch64] Minor bugfix and optimization.
Fixes a bug in lfs where I was doing a rev64.16b when I needed to do a rev32.8b.
Change a ld1r.4s to a ld1r.2s.
Fix an issue where a fcvtl2 needed to be a fcvtl.
Re-enabled psq_l, issue with flickering can't be reproduced anymore, so whatever.
2015-05-31 22:03:36 -05:00
Ryan Houdek ac1f3ef099 Merge pull request #2492 from Sonicadvance1/fix_block_sizes
Fix JIT core's block sizes.
2015-05-31 16:49:47 -04:00
Ryan Houdek 1723217cc9 [AArch64] Don't disable tw{i,}
It's an endblock instruction, it shouldn't be disabled via the JITDISABLE macro.
2015-05-31 15:37:22 -05:00
Ryan Houdek 6c56cd0c30 Fix JIT core's block sizes.
Was causing disassembled blocks to be cut off by a few instructions at the end.
2015-05-31 14:59:17 -05:00
Ryan Houdek 210d7c4d54 Merge pull request #2486 from Tilka/x86_32
Jit64: drop more x86_32 left-overs
2015-05-31 13:06:19 -04:00
Tillmann Karras eb057d49a0 x64Emitter: drop duplicate enum & unused wrappers
Keep the more explicit version of the two SSECompare enums.

And the unused CMP* wrappers wouldn't exactly make the code more
readable anyway.
2015-05-31 08:32:31 +02:00
Tillmann Karras a6004f8274 Jit64: drop more x86_32 left-overs 2015-05-31 05:28:40 +02:00
Lioncash 0b8372e566 Jit_Util: Make some OpArg parameters const references 2015-05-29 01:13:45 -04:00
Lioncash e3a6191f02 x64Emitter: Pass some OpArg parameters by const reference
Considering OpArg is a struct, passing by value creates unnecessary copies.
2015-05-29 01:13:29 -04:00
Tillmann Karras 6ea49da5b9 Jit64: fix ps_sum
It's /always/ the register cache.
2015-05-26 19:00:42 +02:00
Ryan Houdek b038b61a29 [ARMv7] Extend the life of the JIT Recompiler.
Until loadstores are fully investigated, let's artificially extend the life of it by disabling all of them.
These instructions break in a very terrible way and eventually all loadstores end up attempting to access memory region (u32)-1.
Disable until someone has enough time to investigate further.
2015-05-25 23:36:28 -05:00
Ryan Houdek 3817dd0f91 Merge pull request #2272 from phire/jitil-floatbug
JitIL: Fix a bug in floatpoint load/store instructions.
2015-05-25 23:17:56 -04:00
Ryan Houdek 7c04c76a26 Merge pull request #2421 from Tilka/jit_stuff
Jit64: fixes + less code
2015-05-25 23:08:24 -04:00
Ryan Houdek 0c5f5c4519 Merge pull request #2394 from Sonicadvance1/android_block_profiling_api
[Android] Block profiling JNI interface
2015-05-25 23:06:37 -04:00
Ryan Houdek 95f9096068 Merge pull request #2396 from Sonicadvance1/fix_racing_cpu_core
Fix a race condition when pausing the CPU core.
2015-05-25 23:06:18 -04:00
Ryan Houdek 99d9161e49 Merge pull request #2429 from Sonicadvance1/aarch64_block_profile
[AArch64] Implement block profiling.
2015-05-25 23:05:54 -04:00
Ryan Houdek 69963dc4b0 Merge pull request #2274 from degasus/disable_bbox
Disable bbox
2015-05-25 08:46:12 -04:00
Tillmann Karras 30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Tillmann Karras 6d9986846c Simplify some more license headers 2015-05-25 13:11:41 +02:00
degasus ac0e304159 Jitregister: fix common-core dependency 2015-05-25 09:33:34 +02:00
Tillmann Karras df34d43936 Jit64: merge ps_sign into fsign 2015-05-21 12:33:37 +02:00
Tillmann Karras 36d6a16559 Jit64: merge ps_maddXX into fmaddXX 2015-05-21 12:33:37 +02:00
Tillmann Karras c6147c5ed5 Jit64: merge ps_arith into fp_arith 2015-05-21 12:33:37 +02:00
Tillmann Karras 6d23b511a6 Jit64: merge tri_op into fp_tri_op 2015-05-21 12:33:37 +02:00
Tillmann Karras dc220fa13d Jit64: merge ps_sel into fselx 2015-05-21 12:33:36 +02:00
Tillmann Karras 05a55de08f Jit64: optimize ps_sum 2015-05-21 12:33:36 +02:00
Tillmann Karras ece0ef4ca8 Jit64: add packed optimization to frsp 2015-05-21 12:33:36 +02:00
Tillmann Karras 6b8ab5993a Jit64: make ForceSinglePrecision more versatile 2015-05-21 12:33:36 +02:00
Tillmann Karras 9792976ee9 Jit64: fix ForceSinglePrecisionS/P
This bug never broke anything because of how these functions are used.
Fixing it should avoid some false dependencies though.
2015-05-21 12:33:36 +02:00
Tillmann Karras a7d753922d Interpreter: fix instruction table flags of frsp
frsp overwrites both ps0 and ps1 so frD is not an input. Regardless of
whether that's what the hardware does, it's what we do.
2015-05-21 12:33:36 +02:00
Ryan Houdek eb94e742f1 [AArch64] Implement block profiling.
This is time based block profiling unlike the ARMv7 core.
I would like to add cycle counter based block profiling like the ARMv7 core, but it first requires writing a kernel module to enable the counters to userland applications
2015-05-20 22:23:59 -05:00
Tillmann Karras 1b01911c01 Jit64: indent far code because it looks nice 2015-05-14 19:12:58 +02:00
Tillmann Karras 6c5e5cc7b8 PowerPC: clean up instruction tables 2015-05-14 19:12:54 +02:00
Tillmann Karras accefbf0a5 JitBase: small cleanup 2015-05-14 19:08:07 +02:00
Tillmann Karras 5b023b83ec Jit64: rename twx to twX
We use the lower-case x to signal an optional Rc bit.
2015-05-14 19:08:07 +02:00
Tillmann Karras 2074abbe86 Jit64: drop unused argument from SetFPRFIfNeeded 2015-05-14 19:08:05 +02:00
Tillmann Karras 9723a4e2ed Interpreter: use IntDouble instead of casts 2015-05-14 18:59:05 +02:00
Ryan Houdek 2d47a159ab [AArch64] Disable psq_l.
Causes flickering in games ever since PR #2172.
No idea why
2015-05-11 00:11:40 -05:00
skidau 294629fa9e Merge pull request #2368 from randomstuff/gdb-unix
GDB stub over UNIX socket
2015-05-11 14:42:34 +10:00
Ryan Houdek af305aa168 Fix a race condition when pausing the CPU core.
This affects enabling and disabling block profiling on the fly.
The block profiling pauses the CPU cores and then flushes the JIT's block cache and enables block profile.
The issue with this is that when we pause the CPU core, we don't have a way to tell if the JIT recompiler has actually left.
So if the secondary thread that is clearing the JIT block cache is too quick, it will clear the cache as a recompiler is still running that block that
has been cleared.
2015-05-10 21:00:54 -05:00
Ryan Houdek 0da086e389 Make sure the JitInterface's WriteProfileResults instruction pauses and resumes the CPU core. 2015-05-10 20:02:25 -05:00
Tillmann Karras c651906134 Jit64[IL]: remove some unused stuff 2015-05-09 17:17:49 +02:00
Lioncash 76bbd46829 Core: Remove some header inclusions in header files
Replaces them with forward declarations of used types, or removes them entirely if they aren't used at all. This also replaces certain Common headers with less inclusive ones (in terms of definitions they pull in).
2015-05-08 22:38:59 -04:00
Gabriel Corona 04cb6fccd6 GDB stub over UNIX socket
This is available with the `GDBSocket` option in
`~/.dolphin-emu/Config/Dolphin.ini`.

GDB can connect to it with:

    $ powerpc-eabi-gdb
    (gdb) target remote |socat STDIO UNIX:foo.sock

Because I don't like so much binding the GDB stub socket to 0.0.0.0.
On Linux, with a suitable umask, we can make sure that another local
user cannot connect to the socket.
2015-05-08 14:23:37 +02:00
Matthew Parlane 42ebf5b3bf Merge pull request #2333 from lioncash/virt
InputCommon/Core: Get rid of some virtual destructor warnings
2015-04-28 15:41:48 +12:00
Lioncash 9603fb6ccd Interpreter_LoadStorePaired: Silence uninitialized variable warnings 2015-04-27 22:54:58 -04:00
Lioncash d39b519850 InputCommon/Core: Get rid of some virtual destructor warnings
These classes have virtual methods, but no virtual destructor, which causes warnings on some compilers.
2015-04-27 21:41:59 -04:00