dolphin/Source/Core/Common
Niels Boehm df82adca43 Add function testing whether a bitmask is valid.
This one verifies bitmasks where low bits are set to 1 (hence the name).
Any stray 0 among the lower ones or any stray 1 among the higher zeros
renders the mask invalid.

The edge cases of all zeros and all ones are considered valid masks.

It uses an efficient implementation. It's the counterpart of
https://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
2017-06-22 20:22:53 +02:00
..
Compat Common: Add a std::variant implementation 2017-06-03 12:36:24 +02:00
Config Config: Remove creation of unnecessary CommandLine layer 2017-06-10 19:07:17 +01:00
Crypto msvc: disable unused symbol warning in Core/Common/Crypto/ec.cpp 2017-06-07 18:44:03 -07:00
GL do not assign in conditional statements 2017-06-07 20:09:44 -07:00
Logging Add a namespace to OpenFStream 2017-06-15 21:34:04 +02: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 Analytics: Set the timeout to 5 seconds 2017-06-18 23:16:03 +02:00
Arm64Emitter.cpp Arm64Emitter: add FRECPE 2017-05-03 08:02:35 +01:00
Arm64Emitter.h Arm64Emitter: add FRECPE 2017-05-03 08:02:35 +01:00
ArmCPUDetect.cpp ArmCPUDetect: Add missing include 2017-04-21 11:03:40 +01:00
ArmCommon.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Assert.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02: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 Add includes for building on Windows without PCH 2017-01-23 01:37:41 -08:00
BitField.h BitField: Get rid of a C-style cast 2017-03-23 15:28:58 -04:00
BitField.natvis Correct capitalization of 'Visual Studio' 2015-11-02 17:12:09 +13:00
BitSet.h constexpr added to BitSet.h. conflicts solved 2016-06-25 10:58:53 -03:00
BitUtils.h Add function testing whether a bitmask is valid. 2017-06-22 20:22:53 +02:00
BlockingLoop.h BlockingLoop: Yield to UI message pump while waiting. 2016-11-11 13:37:02 +01: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
CMakeLists.txt cmake/win32: add CompatPatches 2017-06-15 21:26:40 -07:00
CPUDetect.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ChunkFile.h Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
CodeBlock.h Remove code for only allocating low memory 2017-05-20 09:35:53 +02: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 Drop remnants of the plugin system 2017-05-19 19:13:16 +02:00
Common.vcxproj [windows]: Apply compatibility patches to problematic gamepad vibration drivers. 2017-06-15 21:21:01 -07:00
Common.vcxproj.filters [windows]: Apply compatibility patches to problematic gamepad vibration drivers. 2017-06-15 21:21:01 -07:00
CommonFuncs.cpp Rename Misc.cpp to CommonFuncs.cpp 2017-04-15 00:41:09 +02:00
CommonFuncs.h Rename Misc.cpp to CommonFuncs.cpp 2017-04-15 00:41:09 +02:00
CommonPaths.h Add some missing INI files to FileUtil 2017-02-16 09:33:50 +01:00
CommonTypes.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
CompatPatches.cpp [windows]: Apply compatibility patches to problematic gamepad vibration drivers. 2017-06-15 21:21:01 -07:00
DebugInterface.h Fix memory breakpoint when checking the middle of the data 2017-03-18 22:48:57 -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
FPURoundMode.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
FifoQueue.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
File.cpp File/IOFile: Check _tfopen_s properly 2017-06-17 02:16:58 +01:00
File.h Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
FileSearch.cpp FileSearch: Namespace functions under the Common namespace 2017-04-07 01:02:14 -04:00
FileSearch.h FileSearch: Namespace functions under the Common namespace 2017-04-07 01:02:14 -04:00
FileUtil.cpp FileUtil: Use errno for printing errors in IsDirectory 2017-06-16 12:43:41 +02:00
FileUtil.h Add a namespace to OpenFStream 2017-06-15 21:34:04 +02:00
FixedSizeQueue.h FixedSizeQueue: modernize (std::array, std::move) 2016-06-25 17:39:54 +02:00
Flag.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GekkoDisassembler.cpp Add precision about the names of r1, r2 and r13 for the register view 2016-11-02 01:13:00 -04: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 Common/Hash: small cleanup 2017-05-03 06:40:52 +01:00
Hash.h Common/Hash: small cleanup 2017-05-03 06:40:52 +01:00
HttpRequest.cpp HttpRequest: Use std::chrono for indicating time periods 2017-06-18 15:48:37 -04:00
HttpRequest.h HttpRequest: Use std::chrono for indicating time periods 2017-06-18 15:48:37 -04:00
IniFile.cpp Add a namespace to OpenFStream 2017-06-15 21:34:04 +02:00
IniFile.h IniFile: Provide an rvalue reference overload for SetLines 2017-03-22 18:49:13 -04:00
Intrinsics.h Common: Support for function-specific instruction set target on x64 2017-01-24 20:04:55 +10:00
JitRegister.cpp Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
JitRegister.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +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 Add a namespace to OpenFStream 2017-06-15 21:34:04 +02: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
MathUtil.cpp MathUtil: References can be const 2017-04-12 06:15:18 +01:00
MathUtil.h fix various instances of -1 being assigned to unsigned types 2017-06-07 19:52:07 -07:00
MemArena.cpp Remove code for only allocating low memory 2017-05-20 09:35:53 +02:00
MemArena.h Support for dynamic BAT modification (dynamic-bat). 2016-09-06 08:43:22 +02:00
MemoryUtil.cpp remove MemUsage, and therefor psapi dependency 2017-06-08 22:25:46 -07:00
MemoryUtil.h remove MemUsage, and therefor psapi dependency 2017-06-08 22:25:46 -07:00
MsgHandler.cpp Add includes for building on Windows without PCH 2017-01-23 01:37:41 -08:00
MsgHandler.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
NandPaths.cpp Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
NandPaths.h NandPaths: Make .h function order match .cpp 2017-05-06 17:51:50 +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
NonCopyable.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
PcapFile.cpp Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
PcapFile.h Move IOFile to a separate file 2017-06-15 21:33:50 +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. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
SCMRevGen.vcxproj upgrade to Windows SDK 10.0.15063.0 2017-05-28 13:37:31 +02:00
SDCardUtil.cpp Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
SDCardUtil.h Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
ScopeGuard.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Semaphore.h Common: Add a Semaphore wrapper class 2016-10-01 01:09:12 +10:00
SettingsHandler.cpp Move IOFile to a separate file 2017-06-15 21:33:50 +02:00
SettingsHandler.h SettingsHandler: Make GenerateSerialNumber static 2017-01-27 10:29:57 -05:00
StringUtil.cpp StringUtil: Make SplitString return by value 2017-06-11 16:48:20 +02:00
StringUtil.h StringUtil: Make SplitString return by value 2017-06-11 16:48:20 +02:00
Swap.h Common: Move byte swapping utilities into their own header 2017-03-03 17:18:18 -05:00
SymbolDB.cpp SymbolDB: Simplify GetSymbolsFromHash 2017-02-18 06:30:20 -05:00
SymbolDB.h SymbolDB: Use set to map hash with symbols 2016-12-19 21:03:29 +00:00
SysConf.cpp SysConf: Don't set "config done" flags by default 2017-06-18 22:32:56 +02:00
SysConf.h Rewrite SysConf handling 2017-06-18 16:17:05 +02: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 Improve netplay setup dialog UX 2016-07-23 20:58:51 +02:00
TraversalClient.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
TraversalProto.h specify custom brace style to fix unions 2017-01-05 12:55:13 +01:00
TraversalServer.cpp Turn Off Debug Mode for Traversal Server 2017-02-25 23:41:12 -05:00
Version.cpp Fix in-tree build (cmake .) on OS X. 2016-06-25 23:57:17 -04:00
make_scmrev.h.js scmrev: Add "distributor" option. 2016-06-18 18:31:40 +02:00
scmrev.h.in CMake: use configure_file to generate scmrev.h 2017-02-05 22:26:49 -08: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 Fix missing includes 2017-01-24 03:31:51 +01:00
x64Emitter.cpp x64Emitter: Allow code alignment to arbitrary power of 2 2017-04-12 08:41:51 +01:00
x64Emitter.h x64Emitter: Allow code alignment to arbitrary power of 2 2017-04-12 08:41:51 +01: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