summaryrefslogtreecommitdiff
path: root/Source/Core/Common/BitSet.h
AgeCommit message (Collapse)Author
2024-01-01Merge pull request #12473 from ↵Admiral H. Curtiss
Dentomologist/bitset64_fix_iterator_incrementation BitSet64: Fix iterator incrementation
2024-01-01BitSet64: Fix iterator incrementationDentomologist
Use 1 of the same type as the stored value when shifting left. This prevents undefined behavior caused by shifting an int more than 31 bits. Previously iterator incrementation could either hang or prematurely report it had reached the end of the bitset.
2024-01-01BitSet: Use direct initialization instead of c-style castsDentomologist
2023-01-25Common/BitSet: Zero initialize data memberLioncash
Gets rid of the need to remember to initialize them in the constructor, except when overriding the default initializer.
2023-01-25Common/Bitset: Make initializer_list constructor constexprLioncash
This was able to be constexpr since C++14.
2022-12-18Common: Use C++20 <bit> header in BitSet.hJosJuice
2021-07-17remove an outdated commentShawn Hoffman
seems to have been solved 5 years ago by b707e199c2878d173c5d30f0a24db93d7de1d921
2021-07-05licensing: convert "public domain" to CC0 1.0Pierre Bourdon
Public domain does not have an internationally agreed upon definition, As such it's generally preferred to use an extremely liberal license, which can explicitly list the rights granted by the copyright holder. The CC0 license is the usual choice here. This "relicensing" is done without hunting down copyright holders, since it is presumed that their release of this work into the public domain authorizes us to redistribute this code under any other license of our choosing.
2018-10-28BitSet: Add << operatorMerryMage
2018-04-23Common: Amend CommonTypes include within BitSet.hLioncash
We do includes relative to the root, rather than direct pathing.
2018-04-23Common: Move BitSet helper functions into the Common namespaceLioncash
2018-04-22Common: Move BitSet into the Common namespaceLioncash
This should be under the common namespace, considering where it's living
2018-04-12Reformat all the things!spycrab
2016-06-25constexpr added to BitSet.h. conflicts solveddhust
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-02-15Add missing include, this was previously masked by PCH usagehdcmeta
2015-10-04Bitset: Make bool() operator explicit.Scott Mansell
2015-10-04Bitset: Make cast overrides constScott Mansell
2015-08-14JitArm64: Fastmem: fixup map & lookupdegasus
2015-01-10JIT: optimize for the common case of unquantized psq_l/stFiora
Optimistically assume used GQRs are 0 in blocks that only use one GQR, and bail at the start of the block and recompile if that assumption fails. Many games use almost entirely unquantized stores (e.g. Rebel Strike, Sonic Colors), so this will likely be a big performance improvement across the board for games with heavy use of paired singles.
2014-10-29Fix build failing with PCH disabled.Rohit Nirmal
2014-10-25Add workaround for OS X symbol clash and AllOnes helper method.comex
2014-10-25Add BitSet and, as a test, convert some JitRegCache stuff to it.comex
This is a higher level, more concise wrapper for bitsets which supports efficiently counting and iterating over set bits. It's similar to std::bitset, but the latter does not support efficient iteration (and at least in libc++, the count algorithm is subpar, not that it really matters). The converted uses include both bitsets and, notably, considerably less efficient regular arrays (for in/out registers in PPCAnalyst). Unfortunately, this may slightly pessimize unoptimized builds.