Commit Graph

17989 Commits

Author SHA1 Message Date
Scott Mansell a31ebb9bcd PPCAnalyst: Don't swap instruction which might cause interrupts.
fcmpo and fcmpu can be matched by the REORDER_CMP pass, as they set CR0
and they can cause interrupts if the fpu is disabled.
So we add an extra check to make sure op a is an integer op too.
2015-07-07 22:37:48 +12:00
Scott Mansell 4ffeb057cc Interpreter: Fix bug with icache emulation.
The constructor sets up way_from_valid and way_from_plur as fast lookup
tables for implementing the PLRU algrothm. Then the Init function
memsets them to zero, meaning the instruction cache will now always
choose the first way in each set.

This degrades the cache from 128 sets, 8 way to 128 sets, 1 way.

Not only does fixing this bug increase accuracy, but it increases
preformance too, giving a 1% speedup to interpreter.
2015-07-07 22:20:36 +12:00
Scott Mansell c54534ee3b Merge pull request #2649 from phire/FileIO_Sanity
IPC_HLE: Don't open/close files for every single file operation.
2015-07-07 17:16:28 +12:00
Scott Mansell 6e969133f5 evdev: Delete rumble effects on the correct file descriptor.
Was using m_id insted of m_fd.
Also re-arrange the code so rumble effects always get deleted instead of
just on stop commands.
2015-07-07 16:59:10 +12:00
Scott Mansell e14816351e Merge pull request #2706 from phire/revert-PIE
Revert "Merge pull request #2358 from Tilka/pie"
2015-07-07 16:53:50 +12:00
Ryan Houdek 48ac522b5c Merge pull request #2715 from degasus/aarch64
JitArm64: Implement EXCEPTION_FPU_UNAVAILABLE support.
2015-07-06 21:43:56 -05:00
degasus effb626bef JitArm64: Implement EXCEPTION_FPU_UNAVAILABLE support.
Seems like this flag was missed.
This patch was mostly done by HdkR.
2015-07-06 23:40:20 +02:00
Lioncash 25bd55b7aa Core: Use clamps for nunchuk and wiimote x,y,z values 2015-07-06 13:34:11 -04:00
flacs af854dfa00 Merge pull request #2713 from lioncash/space
WiimoteEmu: Fix use of spaces.
2015-07-06 19:25:46 +02:00
Lioncash e3c6eb2a85 WiimoteEmu: Fix use of spaces.
There should be a tab here instead.
2015-07-06 13:20:24 -04:00
flacs df5b658876 Merge pull request #2710 from lioncash/typedef
DSPInterpreter: Remove an unused typedef
2015-07-06 17:07:37 +02:00
JosJuice 9018b546c7 WbfsBlob: Don't enter an infinite loop when reading beyond end of disc
read_size remained 0 when the "Read beyond end of disc" error occurs,
which made the while (nbytes) loop never end. As a fix, SeekToCluster
now explicitly sets available to 0 when the error occurs, and Read
checks for it.
2015-07-06 15:41:37 +02:00
Lioncash 614a656b83 DSPInterpreter: Remove an unused typedef
DSPTables already has an equivalent of this, which it uses.
2015-07-06 06:47:13 -04:00
Markus Wick b6ee886540 Merge pull request #2708 from lioncash/override
MMIO: Add missing override specifiers
2015-07-06 12:36:37 +02:00
Lioncash af4cfd32d4 Core: Change a volatile into an atomic
Also changes s_drawn_video into an atomic, as it's used across threads as well.
2015-07-06 06:25:51 -04:00
Lioncash c7193fcd41 MMIO: Add missing override specifiers 2015-07-06 06:11:31 -04:00
Scott Mansell 0b0f70aad4 Revert "Merge pull request #2358 from Tilka/pie"
This reverts commit 0f7f8f8774, reversing
changes made to 9f15054358.
2015-07-06 09:05:25 +12:00
Markus Wick 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
flacs f03f9cccc4 Merge pull request #2700 from Sintendo/fresbranch
Jit64: Eliminate branch in GenFres
2015-07-05 15:20:38 +02:00
Michael Ehrenreich 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
Sintendo ce10525056 Eliminate branch in GenFres 2015-07-05 11:18:59 +02:00
Scott Mansell 08fcc7bf84 IPC_HLE: Cleanup device definitions with templates.
Less copy/pasted code will make future modifications easier.
2015-07-05 02:05:39 +12:00
Scott Mansell 1d5cda9820 IPC_HLE: Reimplement fix for issues 2917/5232 with more sanity.
Instead of opening... and... closing... files... after... every...
file... operation... (which can be slow, especially if a virus scanner
is running), we catch attempts to open the same file twice and
only open one copy of the file.
2015-07-05 02:01:45 +12:00
Scott Mansell 1af8b62d9f Merge pull request #2698 from Tilka/evdev
evdev: fix -Wunused-private-field warning
2015-07-05 01:14:42 +12:00
Jeffrey Pfau bd196e8c71 Common: CallLambdaTrampoline can return a value
As it is currently written, CallLambdaTrampoline does not return a
value. However, some of the functions that are being wrapped may
return a value that the JIT is expected to understand. A compiler
*cough cough clang* may opt to alter %rax after the wrapped lambda
returns, e.g. popping a previous value, which can clobber the
return value. If we actually have a return value, then the compiler
must not clobber it.
2015-07-05 00:32:26 +12:00
Tillmann Karras 64b51df55d evdev: fix -Wunused-private-field warning 2015-07-04 14:14:15 +02:00
Scott Mansell d2578000bb Merge branch 'stable' 2015-07-04 23:43:36 +12:00
flacs 3bbb2ede9c Merge pull request #2697 from endrift/fix-jit-trampoline
Common: CallLambdaTrampoline can return a value
2015-07-04 11:59:00 +02:00
Jeffrey Pfau c9a25f9484 Common: CallLambdaTrampoline can return a value
As it is currently written, CallLambdaTrampoline does not return a
value. However, some of the functions that are being wrapped may
return a value that the JIT is expected to understand. A compiler
*cough cough clang* may opt to alter %rax after the wrapped lambda
returns, e.g. popping a previous value, which can clobber the
return value. If we actually have a return value, then the compiler
must not clobber it.
2015-07-04 00:57:41 -07:00
Lioncash eb3c5a240f Merge pull request #2696 from RisingFog/tasinput
Fix random hangs when loading savestates with TAS Input
2015-07-04 03:52:40 -04:00
Fog 10f50f33fb Fix random hangs when loading savestates with TAS Input 2015-07-03 21:56:14 -04:00
RGamma 3639755120 Fix TASInput Crash When Stick Bitmap Is Null
Patch provided by RGamma
2015-07-03 18:37:35 -04:00
flacs ced30899cc Merge pull request #2694 from Tilka/polarssl
CMake: fix PolarSSL test
2015-07-04 00:34:25 +02:00
Tillmann Karras 12aed77e8a CMake: fix PolarSSL test 2015-07-03 23:33:47 +02:00
flacs e64bf9154c Merge pull request #2692 from Tilka/revert
Revert "Interpreter: assign directly instead via variables"
2015-07-03 21:14:29 +02:00
Tillmann Karras afea72edfe Revert "Interpreter: assign directly instead via variables"
This reverts commit 174ada3a62.
2015-07-03 21:10:18 +02:00
Markus Wick 3fc070c4fc Merge pull request #2680 from degasus/idle
Interpreter: Idle skipping support
2015-07-03 19:52:05 +02:00
Markus Wick 6193e7b5b2 Merge pull request #2690 from sigmabeta/android-tv-selection
Android TV: Use accent color to highlight games on selection screen.
2015-07-03 19:51:24 +02:00
sigmabeta 3ad151062b Android TV: Game selection screen highlights games with accent color. 2015-07-03 13:46:54 -04:00
skidau 8a50dc857b Merge pull request #2681 from phire/evdev-stable
Linux: Add an evdev based controller backend, to replace SDL.
2015-07-03 10:28:08 +10:00
flacs c53e7f2842 Merge pull request #2685 from lioncash/const
Arm64Emitter: Add a missing const specifier for an array table
2015-07-03 00:22:58 +02:00
Trace Bullet 64bd20aba7 DiscIO: Check if m_Disc is null in ParsePartitionData() 2015-07-02 11:45:22 -04:00
Lioncash d09d59007a Arm64Emitter: Add a missing const specifier for an array table 2015-07-02 11:09:44 -04:00
Rodolfo Bogado d8cd2c3252 Implement scaled partial texture updates 2015-07-02 08:53:40 -03:00
Admiral H. Curtiss 6a33f174de GC Adapter: Do not attempt to claim_interface when libusb_open() returns an error.
Fixes a crash / nullptr dereference when the adapter is plugged in but
no drivers are installed for it, on Windows.
2015-07-01 23:49:39 +02:00
Jules Blok bee7f19d76 Merge pull request #2682 from AdmiralCurtiss/libusb-fix-win-crash-without-drivers
GC Adapter: Do not attempt to claim_interface when libusb_open() fails.
2015-07-01 23:48:24 +02:00
Ryan Houdek e9921044b5 Merge pull request #2671 from degasus/jitarmbranch
JitArm64: branching fallbacks
2015-07-01 11:40:07 -05:00
degasus 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
degasus 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
degasus dc83c8912f JitArm64: Support branching fallbacks 2015-07-01 17:58:17 +02:00