dolphin/Source/Core/Common
Lioncash b3292298c9
BitUtils: Add C++14/C++17 compatible equivalent of std::bit_cast from C++2a
Given bit conversions between types are quite common in emulation
(particularly when it comes to floating-point among other things) it
makes sense to provide a utility function that keeps all the boilerplate
contained; especially considering it makes it harder to accidentally
misuse std::memcpy (such as accidentally transposing arguments, etc).

Another benefit of this function is that it doesn't require separating
declarations from assignments, allowing variables to be declared const.
This makes the scenario of of uninitialized variables being used less
likely to occur.
2018-05-10 12:28:05 -04:00
..
Compat Android: Fix NDK r16b2 build 2017-11-07 11:02:27 -05:00
Config Remove code related to UI.ini 2018-05-02 18:18:27 +02:00
Crypto msvc: disable unused symbol warning in Core/Common/Crypto/ec.cpp 2017-06-07 18:44:03 -07:00
Debug DebugInterface: Watches methods added 2018-04-28 17:46:51 +04:00
GL Fix change in comment meaning by autoformat. 2018-04-13 09:20:27 +12:00
Logging Common/Logging/Log: Wrap GENERIC_LOG macro's body in do { } while (0) 2018-04-16 12:11:32 -04:00
Align.h Common: Add alignment header 2016-12-06 20:33:53 +01:00
Analytics.cpp Common: Add HttpRequest to simplify HTTP requests 2017-06-13 12:52:31 +02:00
Analytics.h Reformat all the things! 2018-04-12 21:28:39 +02:00
Arm64Emitter.cpp Reformat all the things! 2018-04-12 21:28:39 +02:00
Arm64Emitter.h Arm64Emitter: Make IsImmArithmetic, IsImmLogical, FPImm8ToFloat, and FPImm8FromFloat internally linked 2018-03-23 19:17:26 -04:00
ArmCommon.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ArmCPUDetect.cpp CPUDetect: Make CPUVendor enum an enum class 2018-04-01 17:47:50 -04:00
Assert.h Assert: Remove unused parameter from DEBUG_ASSERT 2018-03-16 13:01:11 -04:00
Atomic.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Atomic_GCC.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Atomic_Win32.h Atomic_Win32: Replace deprecated (and since been removed) barrier intrinsics 2018-05-09 11:35:35 -04:00
BitField.h Reformat all the things! 2018-04-12 21:28:39 +02:00
BitField.natvis Correct capitalization of 'Visual Studio' 2015-11-02 17:12:09 +13:00
BitSet.h Common: Amend CommonTypes include within BitSet.h 2018-04-23 00:14:00 -04:00
BitUtils.h BitUtils: Add C++14/C++17 compatible equivalent of std::bit_cast from C++2a 2018-05-10 12:28:05 -04:00
BlockingLoop.h Reformat all the things! 2018-04-12 21:28:39 +02:00
CDUtils.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
CDUtils.h Add missing license headers 2015-05-25 13:11:47 +02:00
ChunkFile.h Assert: Uppercase assertion macros 2018-03-14 22:03:12 -04:00
CMakeLists.txt Common: Move floating-point utility functions to FloatUtils.h/.cpp 2018-05-07 02:56:32 -04:00
CodeBlock.h Assert: Uppercase assertion macros 2018-03-14 22:03:12 -04:00
ColorUtil.cpp Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
ColorUtil.h ColorUtil: Make decodeCI8image's pal parameter const 2017-01-13 17:07:26 -05:00
Common.h Common: Move version strings to their own header 2017-09-09 19:28:10 -04:00
Common.vcxproj Common: Move floating-point utility functions to FloatUtils.h/.cpp 2018-05-07 02:56:32 -04:00
Common.vcxproj.filters Common: Move floating-point utility functions to FloatUtils.h/.cpp 2018-05-07 02:56:32 -04:00
CommonFuncs.cpp Reformat all the things! 2018-04-12 21:28:39 +02:00
CommonFuncs.h CommonFuncs: Generify rotation functions and move them to BitUtils.h 2018-03-31 18:09:45 -04:00
CommonPaths.h Qt: Allow custom stylesheets 2018-05-08 15:07:50 +02:00
CommonTypes.h CommonTypes: Qualify standard integral types in typedefs with std:: 2017-08-20 19:34:52 -04:00
CompatPatches.cpp Reformat all the things! 2018-04-12 21:28:39 +02:00
CPUDetect.h CPUDetect: Make CPUVendor enum an enum class 2018-04-01 17:47:50 -04:00
DebugInterface.h DebugInterface: Watches methods added 2018-04-28 17:46:51 +04:00
ENetUtil.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ENetUtil.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Event.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
File.cpp File: Make GetSize() a const member function 2017-08-06 07:57:43 -04:00
File.h Remove NonCopyable 2017-08-22 16:40:34 +02:00
FileSearch.cpp Fix DoFileSearch for non-ASCII extensions on Windows 2017-06-28 09:50:02 +02:00
FileSearch.h replace DoFileSearch with optimized version 2017-06-23 17:25:53 -07:00
FileUtil.cpp Qt: Allow custom stylesheets 2018-05-08 15:07:50 +02:00
FileUtil.h Qt: Allow custom stylesheets 2018-05-08 15:07:50 +02:00
FixedSizeQueue.h Reformat all the things! 2018-04-12 21:28:39 +02:00
Flag.h Reformat all the things! 2018-04-12 21:28:39 +02:00
FloatUtils.cpp FloatUtils: Remove union type punning from ClassifyX functions 2018-05-09 10:25:23 -04:00
FloatUtils.h Common: Move floating-point utility functions to FloatUtils.h/.cpp 2018-05-07 02:56:32 -04:00
FPURoundMode.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GekkoDisassembler.cpp Merge pull request #6626 from lioncash/dcbz_l-disasm 2018-04-12 22:18:56 +01:00
GekkoDisassembler.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GenericCPUDetect.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GenericFPURoundMode.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Hash.cpp CommonFuncs: Generify rotation functions and move them to BitUtils.h 2018-03-31 18:09:45 -04:00
Hash.h CustomTexture: Drop old texture format. 2018-01-20 17:08:47 +01:00
HttpRequest.cpp HttpRequest/Curl: Use a more intelligent timeout method 2018-05-04 13:30:49 +02:00
HttpRequest.h HttpRequest: Add callback option 2018-03-28 17:33:34 +02:00
IniFile.cpp Replace StringFromInt with std::to_string 2017-07-05 13:49:33 +02:00
IniFile.h Reformat all the things! 2018-04-12 21:28:39 +02:00
Intrinsics.h Reformat all the things! 2018-04-12 21:28:39 +02:00
JitRegister.cpp JIT: Don't always look up symbols for blocks 2017-09-10 11:42:12 +02:00
JitRegister.h JIT: Don't always look up symbols for blocks 2017-09-10 11:42:12 +02:00
Lazy.h Reformat all the things! 2018-04-12 21:28:39 +02:00
LdrWatcher.cpp [windows]: Apply compatibility patches to problematic gamepad vibration drivers. 2017-06-15 21:21:01 -07:00
LdrWatcher.h [windows]: Apply compatibility patches to problematic gamepad vibration drivers. 2017-06-15 21:21:01 -07:00
LinearDiskCache.h LinearDiskCache: Don't cast away const in Read() 2018-03-27 21:09:18 -04:00
make_scmrev.h.js make_scmrev.h.js: set default auto-update track from environment 2018-03-19 00:11:55 +01:00
MathUtil.cpp Common: Move floating-point utility functions to FloatUtils.h/.cpp 2018-05-07 02:56:32 -04:00
MathUtil.h Common: Move floating-point utility functions to FloatUtils.h/.cpp 2018-05-07 02:56:32 -04:00
MD5.cpp DiscIO: Remove C/I/S prefixes from class names 2017-06-06 12:31:59 +02:00
MD5.h Add md5 testing to netplay 2016-07-16 22:48:46 +02:00
MemArena.cpp MemArena: Use names that are based on the PID 2017-10-11 17:40:05 +02:00
MemArena.h Support for dynamic BAT modification (dynamic-bat). 2016-09-06 08:43:22 +02:00
MemoryUtil.cpp CommonFuncs: LastStrerrorString added 2017-08-18 20:08:50 +01:00
MemoryUtil.h remove MemUsage, and therefor psapi dependency 2017-06-08 22:25:46 -07:00
MsgHandler.cpp MsgHandler: small cleanup 2017-08-03 13:29:59 -07:00
MsgHandler.h MsgHandler: small cleanup 2017-08-03 13:29:59 -07:00
NandPaths.cpp NandPaths: Return paths that are relative to Wii NAND 2018-05-04 19:52:17 +02:00
NandPaths.h NandPaths: Return paths that are relative to Wii NAND 2018-05-04 19:52:17 +02:00
Network.cpp Common: Namespace Network.h/.cpp 2017-01-17 20:46:48 -05:00
Network.h Common: Namespace Network.h/.cpp 2017-01-17 20:46:48 -05:00
PcapFile.cpp Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
PcapFile.h Remove NonCopyable 2017-08-22 16:40:34 +02:00
PerformanceCounter.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
PerformanceCounter.h Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Profiler.cpp fix various instances of -1 being assigned to unsigned types 2017-06-07 19:52:07 -07:00
Profiler.h Reformat all the things! 2018-04-12 21:28:39 +02:00
QoSSession.cpp Add Quality of Service (QoS) support 2018-03-09 00:11:18 +01:00
QoSSession.h Reformat all the things! 2018-04-12 21:28:39 +02:00
Result.h Reformat all the things! 2018-04-12 21:28:39 +02:00
scmrev.h.in ConfigManager: Enable Auto-Updater by default 2018-04-26 15:12:15 +02:00
SCMRevGen.vcxproj SCMRevGen: Use DisableFastUpToDateCheck 2017-06-24 17:34:21 +01:00
ScopeGuard.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
SDCardUtil.cpp Reformat all the things! 2018-04-12 21:28:39 +02:00
SDCardUtil.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Semaphore.h Reformat all the things! 2018-04-12 21:28:39 +02:00
SettingsHandler.cpp SettingsHandler: Fix generated serial numbers 2017-08-08 23:25:40 +08:00
SettingsHandler.h SettingsHandler: Make GenerateSerialNumber static 2017-01-27 10:29:57 -05:00
SPSCQueue.h Rename Common::FifoQueue to Common::SPSCQueue 2017-08-23 17:00:52 -07:00
StringUtil.cpp Reformat all the things! 2018-04-12 21:28:39 +02:00
StringUtil.h StringUtil.h: Move ThousandSeparate down 2018-05-08 13:55:07 +02:00
Swap.h Common/Swap: Amend BigEndianValue's operator= to return a reference to the object rather than returning void 2018-04-08 01:22:18 -04:00
SymbolDB.cpp SymbolDB: Blank stripped symbol name fixed 2017-08-16 04:07:19 +01:00
SymbolDB.h PPCSymbolDB: Do not truncate fixed size symbols 2018-04-10 21:50:33 +04:00
Thread.cpp fix various instances of -1 being assigned to unsigned types 2017-06-07 19:52:07 -07:00
Thread.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Timer.cpp Add includes for building on Windows without PCH 2017-01-23 01:37:41 -08:00
Timer.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
TraversalClient.cpp TraversalClient: Use u32 instead of enet_uint32 2018-04-16 16:46:48 -04:00
TraversalClient.h TraversalClient: Use u32 instead of enet_uint32 2018-04-16 16:46:48 -04:00
TraversalProto.h specify custom brace style to fix unions 2017-01-05 12:55:13 +01:00
TraversalServer.cpp traversal: add systemd watchdog support 2018-03-08 06:10:17 +00:00
UPnP.cpp UPnP: use value-initialization instead of std::memset 2017-08-13 18:50:53 -07:00
UPnP.h Common: extract UPnP namespace from NetPlayServer 2017-08-13 18:50:51 -07:00
Version.cpp Common: Move version strings to their own header 2017-09-09 19:28:10 -04:00
Version.h Common: Move version strings to their own header 2017-09-09 19:28:10 -04:00
WorkQueueThread.h GameTracker: use WorkQueueThread 2017-08-20 14:40:56 -07:00
x64ABI.cpp x64Emitter: Generify ABI_CallFunction variants 2016-08-31 22:54:47 -04:00
x64ABI.h x64Emitter: Generify ABI_CallFunction variants 2016-08-31 22:54:47 -04:00
x64CPUDetect.cpp intrinsics: stop defining _xgetbv/_XCR_XFEATURE_ENABLED_MASK, which are reserved 2018-05-08 17:25:33 +08:00
x64Emitter.cpp x64Emitter: Use an enum class to represent FixupBranch branch types 2018-05-06 22:05:03 -04:00
x64Emitter.h x64Emitter: Use an enum class to represent FixupBranch branch types 2018-05-06 22:05:03 -04:00
x64FPURoundMode.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
x64Reg.h x64Emitter: Generify ABI_CallFunction variants 2016-08-31 22:54:47 -04:00