magumagu
b5ed27ffa8
Misc cleanup in Interpreter.
...
Mostly comment changes; also gets rid of an unnecessary call to
CheckExceptions.
2016-06-25 22:52:17 -07:00
Pierre Bourdon
3570c7f03a
Reformat all the things. Have fun with merge conflicts.
2016-06-24 10:43:46 +02:00
Pierre Bourdon
2115e8a4a6
Add annotations for code sections that need to remain manually formatted.
2016-06-24 10:41: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
Matthew Parlane
ea82fcc24f
Merge pull request #3658 from Tilka/helpers
...
Interpreter: simplify some helpers
2016-05-03 22:44:27 +12:00
Scott Mansell
eb5819f88a
Make exceptions consistant across all JITs/Interpeters.
...
They all handled it diffrently, so I've just moved it into Advance()
This fixes Pokemon Box booting in JIT/JITIL which shared a bug where
exceptions set in a scheduled event would be ignored untill the next
slice (upto 20,000 cycles).
2016-04-28 17:22:52 +12:00
Scott Mansell
407f86e01a
Mark global variables with g_ prefix
2016-03-24 04:32:12 +13:00
Tillmann Karras
3b2e170f0b
Interpreter: simplify subtable handling
2016-02-20 02:20:41 +00:00
Tillmann Karras
b291b0a7c2
Interpreter: simplify mask helper
2016-02-20 01:03:46 +00:00
Tillmann Karras
af5ff9941a
Interpreter: deduplicate CR0 helper
2016-02-20 01:03:37 +00:00
Lioncash
d9a16f7c9c
Interpreter: Remove unnecessary includes from Interpreter.h
...
Previously the JIT code relied on indirect inclusion from this header,
this gets rid of that.
2016-01-10 18:51:12 -05:00
Tillmann Karras
d3dfdf7767
Interpreter: don't always set FPSCR.FX on NaNs
...
FPSCR.FX must only be set if an exception bit changes from 0 to 1.
SetFPException() already handles this correctly.
2015-12-16 21:17:36 +01:00
Lioncash
392c1335b7
Interpreter: Get rid of some aliasing casts
2015-12-09 19:14:53 -05:00
Lioncash
3acf165787
Interpreter: Update CR when FRSP's record bit is set
2015-12-09 12:51:53 -05:00
Lioncash
a98bddc352
Interpreter: Remove underscore from frsp's parameter
2015-12-09 12:50:50 -05: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
Lioncash
19ac565e0d
Common: Move asserts to their own header
2015-09-26 18:51:27 -04:00
Lioncash
b9e360df7b
MathUtil: Convert Clamp into a constexpr function
2015-09-12 01:18:28 -04:00
Lioncash
19459e827f
Partially revert "General: Toss out PRI macro usage"
2015-09-11 09:49:00 -04:00
Scott Mansell
be4caa3dc0
Merge pull request #2961 from lioncash/printf
...
General: Toss out PRI macro usage
2015-09-06 21:02:22 +12:00
Lioncash
633be0387d
General: Remove unimplemented function prototypes
2015-09-05 22:01:07 -04:00
Lioncash
8fdb013d54
General: Toss out PRI macro usage
...
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
degasus
6f34b27323
Jit64: implement dcbf + dcbi
2015-08-24 18:33:19 +02:00
Lioncash
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
Lioncash
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
flacs
95d958c03d
Merge pull request #2889 from lioncash/interp
...
Interpreter: Use std::isnan instead of IsNAN
2015-08-21 21:43:08 +02:00
Lioncash
18d658df1f
Interpreter_FloatingPoint: Use std::isnan instead of IsNAN
...
Same thing, except one is part of the stdlib.
2015-08-21 15:04:03 -04:00
Tillmann Karras
415ad94dbe
Interpreter: fix undefined bits of mffs
...
Lioncash tested this on hardware.
2015-08-18 15:07:14 +02:00
Tillmann Karras
a9447a8606
PowerPC: drop instructions not supported by GC/Wii
2015-08-17 06:03:11 +02:00
JosJuice
c49074742c
Restore old assert message for unknown instruction
...
The assert(0) that was introduced in PR #2811 is not user friendly
since it has no explanation at all about what happened. Regular users
probably won't think of looking at the log to get more information.
2015-08-15 10:00:49 +02:00
Rohit Nirmal
703892e845
Fix building with PCH disabled.
2015-08-12 12:01:17 -05:00
Ryan Houdek
0326bf7164
On unknown_instruction dump the full guest GPR state.
2015-08-07 02:45:05 -05:00
Tillmann Karras
bcdafc7e34
Interpreter: fix rounding of FNMA instructions
...
x86: round(-a*c +/- b)
PowerPC: -round(a*c +/- b)
If the rounding mode is set to +/- infinity, the order of round/negate
matters.
2015-07-18 22:54:15 +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
degasus
717d4bfbcc
Interpreter: Idle skipping support
2015-06-30 20:11:23 +02:00
Tillmann Karras
2711d5201b
Interpreter: turn SNaNs into QNaNs
2015-06-26 09:29:18 +02:00
Tillmann Karras
174ada3a62
Interpreter: assign directly instead via variables
2015-06-26 08:16:34 +02:00
Tillmann Karras
b2c21e800a
Interpreter: drop unused macros
2015-06-26 08:16:34 +02:00
Tillmann Karras
ca36ff0551
Interpreter: consolidate fdiv/fdivs/ps_div
2015-06-26 08:07:46 +02:00
degasus
c375111076
Options: merge SCoreStartupParameter into SConfig
2015-06-12 19:07:45 +02:00
Tillmann Karras
d329147871
Interpreter: use std::isnan(x) instead of x != x
2015-06-10 14:31:08 +02:00
Tillmann Karras
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
Lioncash
bc0e61cb7c
Interpreter: Remove unused function prototype
2015-06-04 13:53:53 -04:00
Tillmann Karras
088668606d
Interpreter: use the VERY_ACCURATE_FP code
2015-06-03 22:08:24 +02:00
Tillmann Karras
68eb83ea83
Interpreter: fix NaN handling in FMA
2015-06-03 22:08:24 +02: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
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
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