dolphin/Source/Core/Common
JosJuice 06e60ac327 JitArm64: Implement accurate NaNs
For quite some time now, we've had a setting on x86-64 that makes Dolphin
handle NaNs in a more accurate but slower way. There's only one game that
cares about this, Dragon Ball: Revenge of King Piccolo, and what that game
cares about more specifically is that the default NaN (or "generated NaN"
as I believe it's called in PowerPC documentation) is the same as on
PowerPC. On ARM, the default NaN is the same as on PowerPC, so for the
longest time we didn't need to do anything special to get Dragon Ball:
Revenge of King Piccolo working. However, in 93e636a I changed how we
handle FMA instructions in a way that resulted in the sign of NaNs
becoming inverted for nmadd/nmsub instructions, breaking the game.
To fix this, let's implement the AccurateNaNs setting, like on x86-64.
2022-12-03 19:41:32 +01:00
..
Config Integrate "Ignore for this session" better with config system 2022-09-24 13:03:45 +02:00
Crypto Add initial WiiConnect24 support 2022-10-16 04:19:36 +02:00
Debug Merge pull request #10771 from TryTwo/PR_AutoStep 2022-11-04 23:32:54 +01:00
GL GLX: Guard against redefinition of PFNGLXSWAPINTERVALEXTPROC 2022-05-29 13:50:32 -04:00
Logging Use `__VA_OPT__(, ) __VA_ARGS__` instead of `##__VA_ARGS__` 2022-08-23 12:09:57 -07:00
Align.h licensing: convert "public domain" to CC0 1.0 2021-07-05 04:43:55 +02:00
Analytics.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
Analytics.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
AndroidAnalytics.cpp Android: Mark s_android_send_report as static 2022-01-06 12:20:09 +01:00
AndroidAnalytics.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Arm64Emitter.cpp JitArm64: Implement accurate NaNs 2022-12-03 19:41:32 +01:00
Arm64Emitter.h JitArm64: Implement accurate NaNs 2022-12-03 19:41:32 +01:00
ArmCPUDetect.cpp CPUDetect: improve win/arm64 support 2022-07-25 21:21:11 -07:00
ArmCommon.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
ArmFPURoundMode.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
Assert.h Use `__VA_OPT__(, ) __VA_ARGS__` instead of `##__VA_ARGS__` 2022-08-23 12:09:57 -07:00
BitField.h Make all custom fmt::formatter's format functions const 2022-01-13 11:11:08 -08:00
BitField.natvis Improve BitField natvis 2022-01-02 14:39:34 -08:00
BitSet.h remove an outdated comment 2021-07-17 17:46:57 -07:00
BitUtils.h Common: Remove unused stuff from BitUtils.h 2022-08-05 17:54:51 +02:00
BlockingLoop.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
CDUtils.cpp Move to C++20 for non-MSVC compilers 2022-07-30 23:35:53 +01:00
CDUtils.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
CMakeLists.txt Merge pull request #10771 from TryTwo/PR_AutoStep 2022-11-04 23:32:54 +01:00
CPUDetect.h CPUDetect: improve win/arm64 support 2022-07-25 21:21:11 -07:00
ChunkFile.h HostFileSystem: Set all NAND folders to be saved in save states when a movie is active 2022-11-10 14:02:29 -05:00
CodeBlock.h Common/CodeBlock: Call ResetCodePtr when decreasing region_size 2022-02-12 17:51:32 +01:00
ColorUtil.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
ColorUtil.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Common.h Common/MsgHandler: Remove non-format variants of PanicAlert 2022-01-09 12:44:14 -08:00
CommonFuncs.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
CommonFuncs.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
CommonPaths.h Config: Add option to use JPN as the Japanese region directory in GetDirectoryForRegion(). 2022-11-22 17:53:19 +01:00
CommonTypes.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
CompatPatches.cpp Add fmt/xchar includes where wstring is used 2022-01-13 11:11:08 -08:00
DebugInterface.h Gekko constistancy changes. Add context item to codeview to show or copy a load/store target memory address from instructions at or near PC when paused. 2022-03-17 12:53:38 -07:00
DynamicLibrary.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
DynamicLibrary.h Common: Make DynamicLibrary non-copyable 2022-03-05 23:40:41 +01:00
ENetUtil.cpp ENetUtil: Check return values of ENet functions in SendPacket(). 2022-10-09 02:39:38 +02:00
ENetUtil.h ENetUtil: Check return values of ENet functions in SendPacket(). 2022-10-09 02:39:38 +02:00
EnumFormatter.h Merge pull request #10367 from Pokechu22/fmt-8.1.1 2022-01-20 21:14:41 +01:00
EnumMap.h EnumMap: Fix typo 2022-08-28 22:38:35 -07:00
EnumMap.natvis Create EnumMap natvis 2022-01-02 15:36:47 -08:00
Event.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
FPURoundMode.h remove SetRoundMode 2021-07-17 19:29:22 -07:00
FatFsUtil.cpp Zero-initialize structures passed to FatFs functions. 2022-10-16 17:12:04 +02:00
FatFsUtil.h FatFsUtil: Add ability to provide callbacks for the FatFs code. 2022-09-29 05:16:21 +02:00
FileSearch.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
FileSearch.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
FileUtil.cpp FileUtil: Return success bool from CopyDir 2022-10-31 23:33:02 -07:00
FileUtil.h FileUtil: Return success bool from CopyDir 2022-10-31 23:33:02 -07:00
FixedSizeQueue.h Fix all uninitialized variable warnings (C26495) 2021-10-13 12:32:16 -07:00
Flag.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
FloatUtils.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
FloatUtils.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
FormatUtil.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
GekkoDisassembler.cpp Gekko constistancy changes. Add context item to codeview to show or copy a load/store target memory address from instructions at or near PC when paused. 2022-03-17 12:53:38 -07:00
GekkoDisassembler.h Gekko constistancy changes. Add context item to codeview to show or copy a load/store target memory address from instructions at or near PC when paused. 2022-03-17 12:53:38 -07:00
GenericCPUDetect.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
GenericFPURoundMode.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
HRWrap.cpp Common: Create HRWrap 2022-01-09 12:44:15 -08:00
HRWrap.h windows: buildfix if pch not used 2022-04-12 12:28:57 -07:00
Hash.cpp Common/Hash: use zlib-ng for adler32. small cleanups. 2022-08-01 10:07:27 -07:00
Hash.h Common/Hash: use zlib-ng for adler32. small cleanups. 2022-08-01 10:07:27 -07:00
HttpRequest.cpp Replace use of of unsigned char* with fmt 2022-01-13 11:11:08 -08:00
HttpRequest.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
IOFile.cpp IOFile: Rename Clear() to ClearError() for clarity. 2022-01-29 06:49:22 +01:00
IOFile.h IOFile: Rename Clear() to ClearError() for clarity. 2022-01-29 06:49:22 +01:00
Image.cpp Common/Image: Add unit to log message 2022-09-26 15:04:15 -07:00
Image.h replace libpng with libspng 2022-07-25 18:32:16 -07:00
IniFile.cpp StripSpaces: only strip spaces 2022-07-25 18:40:12 -07:00
IniFile.h Use Common::ToLower and Common::ToUpper 2022-01-16 17:00:12 -08:00
Inline.h Change _WIN32 check to a _MSC_VER check in Inline.h 2022-05-02 01:57:36 -05:00
Intrinsics.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
JitRegister.cpp JitRegister: Use fmt 2022-02-16 20:09:38 +00:00
JitRegister.h JitRegister: Use fmt 2022-02-16 20:09:38 +00:00
Lazy.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
LdrWatcher.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
LdrWatcher.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
LinearDiskCache.h IOFile: Rename Clear() to ClearError() for clarity. 2022-01-29 06:49:22 +01:00
MathUtil.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
MathUtil.h MathUtil: Mark lo in SaturatingCast as [[maybe_unused]] 2022-02-13 14:38:59 -08:00
Matrix.cpp Common/Matrix: Fix Quaternion Norm function. 2022-10-10 21:16:35 -05:00
Matrix.h Common/Matrix: Add equality operators to TVec2/3/4. 2022-09-24 01:38:01 +02:00
MemArena.h MemArena: Keep fastmem region mapped on Linux. 2022-02-14 22:14:41 +01:00
MemArenaAndroid.cpp MemArena: Prepare interface for proper memory reservation. 2021-12-25 20:20:36 +01:00
MemArenaUnix.cpp MemArena: Keep fastmem region mapped on Linux. 2022-02-14 22:14:41 +01:00
MemArenaWin.cpp MemArena: Load UnmapViewOfFileEx dynamically to restore Windows 7 support. 2022-02-14 21:57:18 +01:00
MemoryUtil.cpp MemoryUtil: Remove __builtin_available for macOS 10.14 2022-06-01 22:57:56 -04:00
MemoryUtil.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
MinizipUtil.h ResourcePack: dont scan for individual files 2022-08-06 15:38:46 -07:00
MsgHandler.cpp Common/MsgHandler: Use caller's file and line number in log messages 2022-01-09 12:44:14 -08:00
MsgHandler.h Common: Add [[nodiscard]] to GetStringT(). 2022-09-23 14:58:18 +02:00
NandPaths.cpp IOS/ES: Add support for V1Ticket 2022-11-17 17:54:06 -05:00
NandPaths.h IOS/ES: Add support for V1Ticket 2022-11-17 17:54:06 -05:00
Network.cpp Common/Network: Add StrNetworkError helper function 2022-08-24 21:05:18 +04:00
Network.h BBA/BuiltIn: Add SSDP multicast support 2022-08-24 21:29:57 +04:00
PcapFile.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
PcapFile.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
PerformanceCounter.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
PerformanceCounter.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Profiler.cpp Common::Timer: use chrono::steady_clock internally 2022-08-02 22:24:06 -07:00
Profiler.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
QoSSession.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
QoSSession.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Random.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Random.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Result.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SCMRevGen.vcxproj msbuild: simplify lang/scm projects a bit 2022-04-27 15:06:04 -07:00
SDCardUtil.cpp msvc: remove warning disables which no longer fire 2021-07-17 18:24:36 -07:00
SDCardUtil.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SFMLHelper.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SFMLHelper.h SFMLHelper: Add stream insertion overload helpers for enum types 2021-09-22 15:42:01 -04:00
SPSCQueue.h Fix all uninitialized variable warnings (C26495) 2021-10-13 12:32:16 -07:00
ScopeGuard.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Semaphore.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SettingsHandler.cpp Use fmt::localtime instead of thread-unsafe std::localtime 2021-10-15 22:49:13 +02:00
SettingsHandler.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SocketContext.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SocketContext.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
StringUtil.cpp Merge pull request #10876 from shuffle2/cpudetect 2022-07-26 12:52:50 +02:00
StringUtil.h Merge pull request #10876 from shuffle2/cpudetect 2022-07-26 12:52:50 +02:00
Swap.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
SymbolDB.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
SymbolDB.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Thread.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
Thread.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Timer.cpp add TODO for chrono in GetLocalTimeSinceJan1970 2022-08-06 22:25:30 -07:00
Timer.h Timer: protect usages of ms timers from rollover 2022-08-02 22:24:06 -07:00
TraversalClient.cpp NetPlayDialog: Display external IP/Port as seen by the traversal server when it's used. 2022-03-15 01:56:16 -05:00
TraversalClient.h NetPlayDialog: Display external IP/Port as seen by the traversal server when it's used. 2022-03-15 01:56:16 -05:00
TraversalProto.h NetPlayDialog: Display external IP/Port as seen by the traversal server when it's used. 2022-03-15 01:56:16 -05:00
TraversalServer.cpp licensing: convert "public domain" to CC0 1.0 2021-07-05 04:43:55 +02:00
TypeUtils.h Create EnumMap 2021-10-24 11:48:36 -07:00
UPnP.cpp Merge pull request #9709 from AdmiralCurtiss/upnp-error-log 2021-07-06 15:36:38 +02:00
UPnP.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
VariantUtil.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Version.cpp Fix static initialisation order fiasco issue for Version variables 2022-01-14 00:04:22 +01:00
Version.h Fix static initialisation order fiasco issue for Version variables 2022-01-14 00:04:22 +01:00
WindowSystemInfo.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
WorkQueueThread.h Common/WorkQueueThread: Make Shutdown() public, so users can wait for all currently queued tasks to finish when shutting down the thread. 2022-10-01 23:58:52 +02:00
build_info.txt.in MacUpdater: check os version 2022-10-30 12:04:57 -07:00
make_scmrev.h.js make_scmrev.h.js: set default auto-update track from environment 2018-03-19 00:11:55 +01:00
scmrev.h.in Make it possible to enable auto-updates by default with CMake builds 2021-04-17 19:45:43 +02:00
x64ABI.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
x64ABI.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
x64CPUDetect.cpp CPUDetect: improve win/arm64 support 2022-07-25 21:21:11 -07:00
x64Emitter.cpp Common/Assert: Switch to fmt 2022-01-09 12:43:11 -08:00
x64Emitter.h HW: Pass System to MMIO handlers. 2022-11-23 05:52:21 +01:00
x64FPURoundMode.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
x64Reg.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00