Commit Graph

161 Commits

Author SHA1 Message Date
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
Tillmann Karras
a7d753922d Interpreter: fix instruction table flags of frsp
frsp overwrites both ps0 and ps1 so frD is not an input. Regardless of
whether that's what the hardware does, it's what we do.
2015-05-21 12:33:36 +02:00
Tillmann Karras
9723a4e2ed Interpreter: use IntDouble instead of casts 2015-05-14 18:59:05 +02:00
Ryan Houdek
af305aa168 Fix a race condition when pausing the CPU core.
This affects enabling and disabling block profiling on the fly.
The block profiling pauses the CPU cores and then flushes the JIT's block cache and enables block profile.
The issue with this is that when we pause the CPU core, we don't have a way to tell if the JIT recompiler has actually left.
So if the secondary thread that is clearing the JIT block cache is too quick, it will clear the cache as a recompiler is still running that block that
has been cleared.
2015-05-10 21:00:54 -05:00
Lioncash
9603fb6ccd Interpreter_LoadStorePaired: Silence uninitialized variable warnings 2015-04-27 22:54:58 -04:00
Lioncash
1fc1880ca5 Interpreter/Jit Tables: Merge table31 and table31_2 2015-03-20 20:39:51 -04:00
Lioncash
1052863bb9 Interpreter/JIT: Add missing overflow variants into the tables. 2015-03-20 19:20:38 -04:00
skidau
b103aa7122 Merge pull request #2189 from magumagu/paired-loadstore-cleanup
Fix paired loadstore to use correct load/store calls.
2015-03-17 11:26:01 +11:00
magumagu
87dcda5785 Remove remnants of old fake opcodes.
These are illegal opcodes, and should be treated as such.
2015-03-14 16:59:12 -07:00
magumagu
dda5e610eb Fix paired loadstore to use correct load/store calls.
psq_st performs one store, and psq_ld one load, from the perspective of the
MMU; getting this wrong leads to potentially incorrect behavior (incorrect page
faults, weirdness with the gather pipe, etc.).  Fix this, and stop masking
the address when checking for gather pipe writes.

Also a bunch of cleanup.
2015-03-11 17:06:18 -07:00
magumagu
9c045e2496 Merge pull request #2094 from lioncash/flags
Interpreter: Flag cleanups/fixes.
2015-03-07 17:38:00 -08:00
Lioncash
139dbcb8e2 Interpreter_Tables: Fix wrong flags and add missing ones 2015-03-03 16:23:21 -05:00
Stevoisiak
93b16a4a2d Formatting/Whitespace Cleanup
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
Lioncash
6fe59d82e1 Interpreter: Fix Helper_UpdateCR1
This previously shifted off-by-one
2015-02-23 06:56:01 -05:00
Lioncash
1a913138d5 Interpreter: Uncomment code related to cmp and cmpl
This is actually correct. Also cmpli has this uncommented as well.
2015-02-22 19:07:09 -05:00
Lioncash
bfa5dcc891 Interpreter: Set the FPCC bits correctly for ordered/unordered FP compares
Setting the whole FPRF is slightly incorrect, this should only modify the FPCC bits; the class bit should be preserved.
2015-02-22 02:19:13 -05:00
Lioncash
09319a1e11 Interpreter: Rearrange ordered/unordered compares
Comparing floating point numbers with == can trigger warnings (and have static analysis tools complain). So we make it the else case.
This also more closely resembles the Gekko manual.
2015-02-21 22:26:23 -05:00