Commit Graph

28559 Commits

Author SHA1 Message Date
Lioncash 8c4aa133ca Interpreter_FloatingPoint: Handle NaN flag setting within fctiw and fctiwz
If a NaN of any type is passed as the operand to either of these
instructions, we shouldn't go down the regular code path, as we end up
potentially setting the wrong flags. For example, we wouldn't set the
FPSCR.VXCVI bit properly. We'd also set FPSCR.FI, when in actuality it
should be unset.

If an SNaN is passed as an operand, we also need to set the FPSCR.VXSNAN
bit as well.

The flag setting behavior for these can be found in Appendix C.4.2 in
PowerPC Microprocessor Family: The Programming Environments Manual for
32 and 64-bit Microprocessors.
2018-05-28 14:05:08 -04:00
Lioncash 0125d9b099 Interpreter_FloatingPoint: Factor out common code from fctiw and fctiwz
fctiwz functions in the same manner as fctiw, with the difference being
that fctiwz always assumes the rounding mode being towards zero. Because
of this, we can implement fctiwz in terms of fctiw's code, but modify it
to accept a rounding mode, allowing us to preserve proper behavior for
both instructions.

We also move Helper_UpdateCR1 to a temporary home in
Interpreter_FPUtils.h for the time being. It would be more desirable to
move it to a new common header for all the helpers, so that even JITs
can use them if they so wish, however, this and the following changes
are intended to only touch the interpreter to keep changes minimal for
fixing instruction behavior.

JitCommon already duplicates the Helper_Mask function within
JitBase.cpp/.h, and the ARM JIT includes the Interpreter header in order
to call Helper_Carry. So a follow up is best suited here, as this
touches two other CPU backends.
2018-05-28 13:28:44 -04:00
Léo Lam a9f022a067
Merge pull request #6993 from lioncash/nan
Interpreter_FPUtils: Set VXSNAN if any input operands are a signaling NaN in remaining NI_* functions
2018-05-28 18:49:13 +02:00
spycrab 6865921286
Merge pull request #7002 from spycrab/qt_rtc_seconds
Qt/AdvancedPane: Show seconds in custom RTC
2018-05-28 14:26:42 +02:00
spycrab 42bd1a91a6 Qt/AdvancedPane: Show seconds in custom RTC 2018-05-28 13:37:46 +02:00
Léo Lam bda668925a
Merge pull request #6989 from lcsondes/fix-vector-assert
UICommon: fix m_cached_files pruning.
2018-05-28 12:41:22 +02:00
Léo Lam 0cba9bb218
Merge pull request #7000 from lioncash/wii-extension
WiimoteEmu: Get rid of pointer casting in extension GetState() functions
2018-05-28 12:39:01 +02:00
JosJuice ed8e400c35 Translation resources sync with Transifex 2018-05-28 11:36:34 +02:00
Markus Wick cddc2d52c2
Merge pull request #6965 from stenzek/d3d-feature-level-10
D3D: Don't emit uint outputs when logic op is unsupported
2018-05-28 09:52:07 +02:00
Markus Wick 9e102e1584
Merge pull request #6943 from lioncash/overflow
Interpreter/Jit64/JitArm64: Correct negative overflow handling for divw
2018-05-28 09:49:19 +02:00
Markus Wick a4d25537a1
Merge pull request #6990 from leoetlino/save
Config: Fix path settings not being saved
2018-05-28 09:46:27 +02:00
Markus Wick 40d3163b12
Merge pull request #6998 from lioncash/log
Common: Remove unnecessary ~9 year old LOGGING preprocessor define
2018-05-28 09:33:21 +02:00
JosJuice 212d415c4b
Merge pull request #6996 from lioncash/color
ColorUtil: Namespace code under the Common namespace
2018-05-28 07:26:29 +02:00
spycrab d3f97debee
Merge pull request #6999 from spycrab/qt_includes
Qt: Sort includes properly
2018-05-28 04:51:15 +02:00
Lioncash 6ad6781bd3 WiimoteEmu: Get rid of pointer casting in extension GetState() functions
We can just memcpy the data instead of pointer-casting data, which is
alignment-safe and doesn't run afoul of aliasing rules.

Previously it also made it seem as if data itself pointed to valid
usable data, but it doesn't, it simply functions as an out parameter
where we push data built up from the GetState() functions into it.
2018-05-27 22:33:26 -04:00
spycrab 6268c7b3d5 Qt: Sort includes properly 2018-05-28 04:31:38 +02:00
Lioncash ee434d4f01 Common: Remove unnecessary ~9 year old LOGGING preprocessor define
This was added in 4bdb4aa0d1 back in
2009-02-27. The only usage spot of this macro involves the same checks
that were used to define that preprocessor macro, so we can simply
remove the macro
2018-05-27 21:33:25 -04:00
spycrab cece179d77
Merge pull request #6997 from spycrab/qt_gcadapter
Qt: Fix using GC Adapter requiring restart
2018-05-28 03:20:32 +02:00
spycrab d0e2c353a0 Qt: Fix using GC Adapter requiring restart 2018-05-28 03:15:45 +02:00
Lioncash a745666a60 ColorUtil: Amend function name casing
Makes the function names conform to our coding style.
2018-05-27 21:04:48 -04:00
Lioncash ac474ff1da ColorUtil: Namespace code under the Common namespace
Given this is within Common, it should be in the Common namespace
itself.
2018-05-27 21:00:54 -04:00
spycrab 18a31e12fd
Merge pull request #6987 from spycrab/qt_info_unknown
Qt/InfoWidget: Don't display unavailable information
2018-05-28 02:36:40 +02:00
Léo Lam 686e29f2d3
Merge pull request #6995 from lioncash/cd
CDUtils: Namespace code under the Common namespace
2018-05-28 01:05:03 +02:00
Lioncash c056708dc8 CDUtils: Remove unused parameter in IsCDROM()
It was only ever passed nullptr, and even then, nothing was actually
done with the parameter.
2018-05-27 18:48:23 -04:00
Lioncash 470b09fe9d CDUtils: Amend function names
Amends the function names to follow our coding style.
2018-05-27 18:48:09 -04:00
Lioncash 1f75fa0aff CDUtils: Namespace code under the Common namespace 2018-05-27 18:30:58 -04:00
Léo Lam 5fdf171967
Merge pull request #6994 from lioncash/symbol
SymbolDB: Minor changes
2018-05-28 00:16:34 +02:00
Lioncash f4ec419929 SymbolDB: Namespace code under the Common namespace
Moves more common code into the Common namespace where it belongs.
2018-05-27 18:01:40 -04:00
Lioncash 72e8058fb8 SymbolDB: Default constructor and destructor within the cpp file
Given this is a class with non-trivial data-members, it's preferable to
default the constructor and destructor in the cpp file.
2018-05-27 17:25:22 -04:00
Lioncash a1a81c7bc9 SymbolDB: Convert typedefs into using aliases 2018-05-27 17:23:55 -04:00
Lioncash e9b9797a86 SymbolDB: Normalize variable names
Normalizes variable naming so that it adheres to our coding style

While we're at it do minor cleanup relating to modified lines
2018-05-27 17:23:10 -04:00
Léo Lam 31045f39ca
Merge pull request #6992 from JosJuice/update-wiitdb
Sync wiitdb files with GameTDB
2018-05-27 23:16:49 +02:00
lcsondes 7a13bdbdfb UICommon: fix m_cached_files pruning (partial revert of 68152faf43)
vector::pop_back invalidates all iterators
2018-05-27 22:15:16 +01:00
Lioncash a4cc854351 Interpreter_FPUtils: Set FPSCR.VXSNAN if any operand to NI_msub is a signaling NaN
If any operand is a signaling NaN, we need to signify this by setting
the VXSNAN bit.

Fixes NaN flag setting for fmsub, fmsubs, fnmsub, fnmsubs, ps_msub, and
ps_nmsub instructions.
2018-05-27 16:41:57 -04:00
Lioncash 3ebd713c33 Interpreter_FPUtils: Set FPSCR.VXSNAN if any operand to NI_madd is a signaling NaN
If any operand is a signaling NaN, we need to signify this by setting
the VXSNAN bit.

Fixes NaN flag setting for fmadd, fmadds, fnmadd, fnmadds, ps_madd,
ps_nmadd, ps_madds0, and ps_madds1
2018-05-27 16:41:47 -04:00
Lioncash b18dd442f7 Interpreter_FPUtils: Set FPSCR.VXSNAN if either operand to NI_sub is a signaling NaN
If either operand is a signaling NaN, we need to signify this by setting
the VXSNAN bit.

This fixes NaN flag setting for fsub, fsubs, and ps_sub instructions.
2018-05-27 16:29:42 -04:00
Lioncash f4c5ceba1c Interpreter_FPUtils: Set FPSCR.VXSNAN if either operand to NI_div is a signaling NaN
If either operand is a signaling NaN, we need to signify that by setting
the VXSNAN bit.

This fixes NaN flag setting for fdiv, fdivs and ps_div instructions.
2018-05-27 16:29:42 -04:00
JosJuice e8631dd68b Sync wiitdb files with GameTDB 2018-05-27 22:26:02 +02:00
Léo Lam 44879f163e Config: Fix path settings not being saved
Forgot to add a few lines while cherry-picking the config changes
for https://dolp.in/pr6950

Fixes https://bugs.dolphin-emu.org/issues/11171
2018-05-27 21:03:01 +02:00
spycrab 4665a927ba Qt/InfoWidget: Don't display unavailable information 2018-05-27 16:27:29 +02:00
JosJuice 512c6fee51
Merge pull request #6986 from leoetlino/warnings
Debug: Add missing override specifiers
2018-05-27 16:16:13 +02:00
spycrab ed0cefec78
Merge pull request #6976 from JosJuice/qt-addgame
GameListModel: Don't do a linear scan for each newly added game
2018-05-27 15:42:17 +02:00
spycrab 48961aa677
Merge pull request #6984 from Techjar/patch-2
Qt/GameConfigWidget: Fix Deterministic dual core not saving if changed to "Not Set"
2018-05-27 15:35:03 +02:00
Léo Lam 145258ad27 Debug: Add missing override specifiers 2018-05-27 14:39:01 +02:00
spycrab febc1f8139
Merge pull request #6980 from spycrab/qt_fix_gamelist
Qt/GameTracker: Register missing metatype
2018-05-27 14:28:21 +02:00
spycrab 0cf59adeb5 Qt/GameTracker: Register missing metatype 2018-05-27 14:21:07 +02:00
Léo Lam 3798127cf7
Merge pull request #6926 from leoetlino/hardcoded-numbers
IOSC: Remove some hardcoded offsets and magic numbers
2018-05-27 14:17:28 +02:00
Léo Lam bea1e38c67 Move ECCSignature to Common::ec and give it a less confusing name 2018-05-27 14:01:38 +02:00
Léo Lam 44827ba369 Use CertECC struct instead of hardcoded offsets 2018-05-27 14:01:38 +02:00
Markus Wick 5de2f960a1
Merge pull request #6985 from degasus/arm_vertex_loader_fix
VertexLoaderArm: Fix 565 color format.
2018-05-27 12:11:40 +02:00