Commit Graph

1033 Commits

Author SHA1 Message Date
009148d401 Merge pull request #2701 from mickdermack/pr-jitnull
Prevent nullptr dereference on a crash with no JIT present
2015-07-05 16:37:29 +02:00
2b2af12466 Prevent nullptr dereference on a crash with no JIT present
JitInterface::HandleFault would dereference jit which is NULL, causing a stack overflow through infinite exception recursion.
2015-07-05 14:24:51 +02:00
ce10525056 Eliminate branch in GenFres 2015-07-05 11:18:59 +02:00
afea72edfe Revert "Interpreter: assign directly instead via variables"
This reverts commit 174ada3a62.
2015-07-03 21:10:18 +02:00
3fc070c4fc Merge pull request #2680 from degasus/idle
Interpreter: Idle skipping support
2015-07-03 19:52:05 +02:00
245a639e2c JitArm64: Partially fallback on bcctrx
No need to assert, fallbacks on branching instructions now works fine.
2015-07-01 17:58:17 +02:00
0054c4e0d9 JitArm64: Drop icbi instruction
It was already just a fallback + exit. Now we emit the exit for all affected fallbacks.
2015-07-01 17:58:17 +02:00
dc83c8912f JitArm64: Support branching fallbacks 2015-07-01 17:58:17 +02:00
b174f99b17 Merge pull request #2662 from Tilka/interpreter
Interpreter: turn SNaNs into QNaNs
2015-07-01 01:09:43 -05:00
2cddaa09f0 [AArch64] Implement rlwimix. 2015-06-30 19:49:10 -05:00
717d4bfbcc Interpreter: Idle skipping support 2015-06-30 20:11:23 +02:00
daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
2711d5201b Interpreter: turn SNaNs into QNaNs 2015-06-26 09:29:18 +02:00
174ada3a62 Interpreter: assign directly instead via variables 2015-06-26 08:16:34 +02:00
b2c21e800a Interpreter: drop unused macros 2015-06-26 08:16:34 +02:00
ca36ff0551 Interpreter: consolidate fdiv/fdivs/ps_div 2015-06-26 08:07:46 +02:00
63a2180c1f [AArch64] Implement slwx in the recompiler.
I streamed this implementation earlier today to get people to have a feel for implementing instructions in the AArch64 recompiler.
This one was a fairly simple one to implement.
2015-06-26 00:51:06 -05:00
2bd11469a5 Jit64: fix pre-SSE4.1 fallback of ps_sum1 2015-06-24 16:48:26 +02:00
6ca6896b6e JitRegCache: Get rid of an unnecessary cast 2015-06-19 18:10:56 -04:00
46cf44bcec PowerPC: Fix GDBStub build 2015-06-16 00:10:28 -07:00
87b45de634 Merge pull request #2606 from Sonicadvance1/aarch64_optimize_psq_st
[AArch64] Optimize paired quantized stores.
2015-06-14 19:03:50 -05:00
96058c5de1 [AArch64] Reenable psq_l.
The bug was due to issues in the FPR cache.
2015-06-14 04:11:59 -05:00
282282aafc [AArch64] Fix a few bugs in the FPR cache. 2015-06-14 04:11:26 -05:00
5ea66369f8 [AArch64] Optimize paired quantized stores.
Uses {S,U}QXTN to saturate the value to the maximum sizes instead of manually clamping using FMIX + FMAX.
2015-06-13 23:16:56 -05:00
f32cede086 Revert "x64: build a Position-Independent Executable (PIE)" 2015-06-14 16:06:26 +12:00
bcc8c78e4a Merge pull request #2582 from Sonicadvance1/aarch64_fix_thp_videos
[WIP] [AArch64] Clamp quantized store ranges.
2015-06-12 18:07:24 -05:00
c375111076 Options: merge SCoreStartupParameter into SConfig 2015-06-12 19:07:45 +02:00
d329147871 Interpreter: use std::isnan(x) instead of x != x 2015-06-10 14:31:08 +02:00
c7544719e2 Interpreter: optimize NaN checks
NaNs always propagate, so we can get away with only checking for NaN
inputs in the rare case that the result is NaN (as already done in
Jit64::HandleNaNs()).
2015-06-10 14:23:43 +02:00
113c2dcd74 [AArch64] Clamp quantized store ranges.
Fixes block dots in THP videos.
Nintendo's THP video uses paired U8 stores to write their THP videos after decoding with floating point operations.
Paired stores clamp the range to the minimum and maximum values(0 - 255 in this case).
In some instances the resulting float will be larger than what a U8 can fit(Typically white) and results in black dots due to how AArch64 handles
quantizing.
2015-06-09 18:11:27 -05:00
aec38466d9 Jit64: optionally accurate NaNs
When AccurateNaNs is enabled, NaNs are handled accurately by checking
for NaN results and choosing the correct input NaN or replacing x86's
generated -QNaN with +QNaN.
2015-06-08 11:14:52 +02:00
59e2225f7d Remove ARMv7 support. 2015-06-07 22:44:13 -05:00
e8ae0f8c3c Merge pull request #2562 from Sonicadvance1/aarch64_optimize_gatherpipe
[AArch64] Optimize gatherpipe stores
2015-06-07 23:23:11 -04:00
8c2e5e2860 Merge pull request #2555 from Sonicadvance1/aarch64_rebase_ppsspp_emitter
[AArch64] Upstream PPSSPP's emitter changes.
2015-06-07 23:23:04 -04:00
444d112df5 Merge pull request #2563 from Sonicadvance1/aarch64_disable_psql
[AArch64] Disable psq_l again.
2015-06-07 23:12:50 -04:00
d29fd84249 [AArch64] Disable psq_l again.
Still causing issues with games.
Disable it again until I can spend enough time debugging it.
2015-06-07 19:55:27 -05:00
46c3a11d01 [AArch64] Optimize gatherpipe stores
This can be even more optimized in the future when the register cache supports constant caching.
2015-06-07 19:53:40 -05:00
05b72c5d31 [AArch64] Upstream PPSSPP's emitter changes.
Requires a minor change to in the JIT to make sure everything still works.
2015-06-07 19:50:21 -05:00
3513dd454f Revert "Jit64: add FMA4 support to fmaddXX"
This reverts commit 794a311b11.
2015-06-07 13:03:16 +02:00
d3e47dfcf5 Merge pull request #2496 from Tilka/fma4
Jit64: add FMA4 support to fmaddXX
2015-06-06 17:31:55 +02:00
7b9565c4e6 [AArch64] Implement lmw/stmw. 2015-06-04 23:54:50 -05:00
fe77505d4d Jit: Make IsInCodeSpace() const 2015-06-04 20:52:53 -04:00
d9e1bf139f JitArm64_RegCache: Make some functions const 2015-06-04 20:40:36 -04:00
6f3598eee4 PPCAnalyst: Remove extra whitespace from CodeBuffer 2015-06-04 19:13:29 -04:00
293c3bae6f PPCAnalyst: Mark some functions as const
Also removes the redundant inline specifier, as functions defined in a class/struct definition are inline by default.
2015-06-04 19:11:38 -04:00
0c23283049 Merge pull request #2522 from lioncash/ref
Core: Pass several parameters by const reference
2015-06-04 16:15:11 -04:00
e37b643096 Merge pull request #2521 from lioncash/unused
Interpreter: Remove unused function prototype
2015-06-04 14:32:31 -04:00
d9b51f74be Core: Pass several parameters by const reference 2015-06-04 14:19:25 -04:00
bc0e61cb7c Interpreter: Remove unused function prototype 2015-06-04 13:53:53 -04:00
030d467d62 Use PanicAlert instead of PanicAlertT when appropriate
It means less work for the translators... But I'm not too sure
about this, because most of these have already been translated.
2015-06-04 13:25:17 +02:00