32 Commits

Author SHA1 Message Date
degasus
78b36921d2 Jit64: Use a temporary register for memory references. Part 1. 2017-04-12 20:53:17 +02:00
Lioncash
8d98ac6509 CPU: Convert state enum to an enum class
Gets enum constants out of the immediate namespace. Also makes it
strongly typed like the other state enums.
2017-03-28 11:48:28 -04:00
Lioncash
f7b9db9846 PowerPC: Convert CoreMode enum into an enum class
Prevents constants from polluting the namespace.
2017-02-04 19:34:56 -05:00
Jules Blok
05a3f927ee CPU: Fix deadlocks by periodically yielding to the UI message pump. 2016-11-11 13:37:03 +01:00
aldelaro5
f0aa9b3751 Reorganise a ton of logs level
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Scott Mansell
65c1df34f4 Merge pull request #4198 from aldelaro5/memory-breakpoint-fix
Fix the memChecks breaking a second time after hitting one and unpausing
2016-09-12 14:51:47 +12:00
aldelaro5
f689b1e6b5 Switch the CPU state to CPU_STEPPING before single stepping after unpausing
This fix a double break bug when hitting a memcheck and hitting play on the same instruction it broke to earlier.  The state is put back to CPU_RUNNING after.
2016-09-11 22:46:12 -04:00
aldelaro5
09df343247 Move Memchecks support out of debug only builds
It wouldn't impact performance until at least one memcheck is enabled.  Because of this, it can be used in release builds without much impact, the only thing that woudl change is the use of HasAny method instead of preprocessor conditionals.  Since the perforamnce decrease comes right when the first memcheck is added and restored when the last is removed, it basically is all beneficial and works the same way.
2016-09-09 15:05:54 -04:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
EmptyChaos
c1922783f8 Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
2016-05-13 09:23:44 +10:00
Lioncash
f2038b9e90 HW: Remove unnecessary header inclusions 2016-01-13 02:47:32 -05:00
degasus
5f244abf28 Fifo: Create a "Fifo" namespace. 2016-01-12 23:28:26 +01:00
degasus
c3481a576b VideoBackend: Remove simple wrapper functions. 2016-01-12 23:28:26 +01:00
comex
e602eac4f9 Synchronize DVDInterface::ChangeDisc with the CPU thread properly.
This addresses a bit of thread unsafety mentioned in a comment, and
fixes a 'ScheduleEvent_Threadsafe from main thread' message.

To make this work nicely, make PauseAndLock call DeclareAsCPUThread -
i.e. while you have the CPU thread locked, you can consider yourself the
CPU thread.
2015-11-03 12:42:05 +01:00
Lioncash
ef1cc2cec4 CPU: Convert CCPU into a namespace
There's not much point to a class with only static member functions.
2015-10-04 15:15:10 -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
joewestcott
72956d59c8 Reverts pull request #2362, fixes issue 8542. 2015-05-06 05:36:37 +01:00
Jonathan Dieter
4112794d4a Avoid deadlock when adding Wiimotes
Signed-off-by: Jonathan Dieter <jdieter@lesbg.com>
2015-05-03 18:47:15 +03:00
comex
2264e7b087 Use a fake exception to exit early in case of memory breakpoints.
Change TMemCheck::Action to return whether to break rather than calling
PPCDebugInterface::BreakNow, as this simplified the implementation; then
remove said method, as that was its only caller.  One "interface" method
down, many to go...
2015-04-24 22:37:54 -04:00
Stevoisiak
93b16a4a2d Formatting/Whitespace Cleanup
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
Benjamin Przybocki
4f324ad742 Clean Up 2015-01-24 17:10:21 -06:00
skidau
b331ec96a3 Made the "continue", "stepover" and "stepout" functions work when the PC is at a breakpoint 2014-10-26 14:56:02 +11:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Lioncash
d18d3e1f3e Common: Get rid of StdConditionVariable, StdMutex, and StdThread.
All of the compilers we support have support for these now.
2014-08-16 23:33:19 -04:00
Pierre Bourdon
b0b70381f7 Revert "Don't add segfault handler in interpreter mode" 2014-07-07 05:30:06 +02:00
Tillmann Karras
20a16beabd enum CPUState: rename CPU_* to STATE_* 2014-07-05 11:01:49 +02:00
Pierre Bourdon
6bdcbad3e4 Common: Move the Event class to a separate file, and add tests for it. Fix includes everywhere to match this. 2014-04-14 10:54:07 +02:00
magumagu
3afa17f752 Move audio handling out of DSP emulation.
This is good for a couple of reasons: one, it gets rid of duplicated code,
and two, DSP emulation shouldn't need to interact with audio in the first
place.
2014-03-29 11:19:32 -07:00
Tillmann Karras
d802d39281 clang-modernize -use-nullptr
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Lioncash
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Jasper St. Pierre
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00