Commit Graph

16649 Commits

Author SHA1 Message Date
5716d18d10 Merge pull request #2910 from Sonicadvance1/aarch64_regcache_fix
[AArch64] Fix a bug in the register cache.
2015-08-26 08:31:24 +02:00
4f5f29a0fb [AArch64] Fix a bug in the register cache.
If the register was only a lower pair and it needed the full register, then we need to load the high 64bits.
Which we weren't doing before.
2015-08-26 01:21:43 -05:00
43d17cb360 Merge pull request #2904 from Sonicadvance1/aarch64_more_inst
[AArch64] Implement fdivx/fdivsx/mfcr/mtcrf.
2015-08-26 07:48:24 +02:00
ee4a12ffe2 Jit64: some byte-swapping changes 2015-08-26 05:41:18 +02:00
6015e2d812 Merge pull request #2900 from aroulin/x64emitter-rcp
x64Emitter: add RCPPS and RCPSS SSE instructions
2015-08-26 05:05:53 +02:00
6729a36d8d [AArch64] Set BindToRegister's to_load correctly for double FP ops. 2015-08-25 21:29:27 -05:00
db4f692482 GCMemcard: Clean up memcard logging messages. 2015-08-25 21:55:52 -04:00
ee50a2ef28 Jit64: fix bugs in the FPSCR instructions 2015-08-25 23:48:14 +02:00
bd08c1b01a Merge pull request #2901 from Sonicadvance1/aarch64_stfiwx
[AArch64] Implement stfiwx
2015-08-25 22:47:39 +02:00
24cb650078 Merge pull request #2663 from degasus/dcbx
Jit64: dcbf + dcbi
2015-08-25 12:16:56 +02:00
0666c0750b [AArch64] Implement fdivx/fdivsx/mfcr/mtcrf.
Gets the povray bench to better times than the Wii.
2015-08-24 15:32:19 -05:00
d96be9250c Merge pull request #2899 from Sonicadvance1/aarch64_fctiwzx
[AArch64] Implement fctiwzx
2015-08-24 13:22:27 -05:00
cd03b8baf6 Merge pull request #2895 from Sonicadvance1/qualcomm_workaround_gles31
Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.
2015-08-24 13:22:12 -05:00
0d92c8fb89 Jit64: Optimize dcbx 2015-08-24 18:33:23 +02:00
ac84d6d0fa Jit64: some cache flush changes
- dynamically allocate third scratch register instead of forcing ECX
- use LEA as 3 operand add if possible
- use BT,JC instead of SHR,TEST,JNZ
- merge MOV,TEST
- use appropriate ABI function (no asm change)
2015-08-24 18:33:23 +02:00
6f34b27323 Jit64: implement dcbf + dcbi 2015-08-24 18:33:19 +02:00
0ad6fa8f62 Merge pull request #2903 from lioncash/cast
Memmap: Remove pointer casts
2015-08-24 15:42:56 +02:00
abd3b124be Memmap: Remove pointer casts 2015-08-24 09:07:09 -04:00
33eefc2d86 Jit64: quickfix for mtfsfx 2015-08-24 12:12:31 +02:00
d3176fe22a [AArch64] Implement stfiwx
Improves povray performance by ~4%
2015-08-24 01:10:55 -05:00
80fa9af9b1 Merge pull request #2898 from degasus/linking
JitArm64: Faster linking of continuous blocks
2015-08-23 18:09:02 -05:00
7320d519b4 JitArm64: Implement srwx 2015-08-23 23:29:48 +02:00
4722a69fd0 JitArm64: Implement divwux 2015-08-23 23:29:18 +02:00
9e4366963c JitArm64: Implement subfic 2015-08-23 23:29:07 +02:00
95be17772f JitArm64: Implement addex 2015-08-23 23:29:02 +02:00
025e7c835a JitArm64: Implement subfcx 2015-08-23 23:28:28 +02:00
550a90e691 JitArm64: Implement subfex 2015-08-23 23:28:24 +02:00
561744819e [AArch64] Implement fctiwzx
Improves the povray benchmark time by 5.6%
2015-08-23 15:35:18 -05:00
4fa23abbe1 [AArch64] Implement MOVI and ORR(imm) in the NEON emitter. 2015-08-23 15:34:53 -05:00
0a0e012fab x64Emitter: add RCPPS and RCPSS SSE instructions 2015-08-23 16:59:27 +02:00
77a6798094 JitArm64: Faster linking of continuous blocks 2015-08-23 14:44:23 +02:00
73067b1ef1 Merge pull request #2888 from degasus/jit64
Jit64: Faster linking of continuous blocks
2015-08-23 13:24:15 +02:00
2a1abf8dd6 Merge pull request #2896 from lioncash/using
Core: Minor CPU core typedef cleanup
2015-08-22 19:00:23 -04:00
cc3fb7e7b4 Merge pull request #2883 from degasus/master
Profiler: Sort output by total time
2015-08-22 17:52:54 -05:00
8b881a6c34 Merge pull request #2891 from Sonicadvance1/aarch64_implement_crxxx
[AArch64] Implement the cr instructions
2015-08-23 00:44:47 +02:00
fdafa5d063 Core: Move includes out of instruction table headers
These aren't necessary (and cause unnecessary indirect inclusions).
2015-08-22 14:15:02 -04:00
a248a4d2ce Jit64/JitIL: Relocate instruction typedefs 2015-08-22 14:15:00 -04:00
c56717e058 Core: Shorten the _interpreterInstruction typedef
The class itself already acts as a namespace trailer, so '_interpreter'
isn't necessary. This also gets rid of a duplicate typedef in the
Interpreter_Tables.
2015-08-22 14:14:49 -04:00
b4e4a4cef4 Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.
Their new driver that supports GLES3.1 + AEP has issues with it.
At the very least they don't implement all of the geometry shader features fully which causes shader linker issues when we attempt to use them.
I don't have a device so I can't fully test, so until I do I'm going to blanket disable the whole thing.
2015-08-22 09:12:19 -05:00
a39c0910c4 Merge pull request #2893 from Sonicadvance1/aarch64_memory_base_register
[AArch64] Use a register as a constant for the memory base.
2015-08-22 15:41:57 +02:00
dba579c52f [AArch64] Use a register as a constant for the memory base.
Removes a /lot/ of redundant movk operations in fastmem loadstores.
Improves performance of the povray bench by ~5%
2015-08-22 08:36:34 -05:00
3f5ff98c1b Merge pull request #2890 from lioncash/ptr
x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
2015-08-22 10:09:28 +02:00
2d505bc2a6 Merge pull request #2894 from Sonicadvance1/no_more_eaten_canary
Fix the shader overrunning our max shader size.
2015-08-22 10:08:14 +02:00
c2f38f1d16 Merge pull request #2892 from Sonicadvance1/aarch64_frsp
[AArch64] Implement frspx
2015-08-22 09:44:14 +02:00
3242e1a617 Fix the shader overrunning our max shader size.
The Star Wars games really push the hardware to its limits, which can cause the shaders that are produced to be 18kb or more.
Double our maximum shader size to compensate.
Fixes issue #8860
2015-08-22 01:01:03 -05:00
ce32b76be3 [AArch64] Implement frspx
Improves performance in povray bench by 2%
2015-08-22 00:35:30 -05:00
d74eb0ea58 [AArch64] Fix the bugs in the cr instructions
Makes it a bit more efficient in the process.
2015-08-21 23:24:29 -05:00
e9ade0abe1 JitArm64: implement crXXX 2015-08-21 20:49:08 -05:00
a69755d9ee x64Emitter: Remove pointer casts from Write{8,16,32,64} functions
This also silences quite a few ubsan asserts from firing when the emitter is being used.
2015-08-21 18:09:48 -04:00
95d958c03d Merge pull request #2889 from lioncash/interp
Interpreter: Use std::isnan instead of IsNAN
2015-08-21 21:43:08 +02:00