summaryrefslogtreecommitdiff
path: root/src/common/bit_field.h
AgeCommit message (Collapse)Author
2023-05-28externals: Update to fmt 10 and add format_as formatter for BitFieldMorph
Implicit conversions are now disallowed in fmt 10. Use format_as to convert to the underlying type.
2022-10-22general: Enforce C4800 everywhere except in video_coreMorph
2022-07-09common: fix bitfield aliasing on GCC/ClangLiam
2022-04-28chore: add missing SPDX tagsAndrea Pappacoda
Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
2022-03-19common: Reduce unused includesameerj
2020-08-15common: Make use of [[nodiscard]] where applicableLioncash
Now that clang-format makes [[nodiscard]] attributes format sensibly, we can apply them to several functions within the common library to allow the compiler to complain about any misuses of the functions.
2020-08-13General: Tidy up clang-format warnings part 2Lioncash
2020-08-08General: Tidy up clang-format warningsLioncash
2020-04-24Fix -Werror=conversion error.Markus Wick
2019-11-16Revert "common/bit_field: Silence sign-conversion warnings"Rodrigo Locatti
2019-11-15common/bit_field: Silence sign-conversion warningsLioncash
We can just use numeric_limits instead of relying on wraparound behavior here.
2019-11-03common_func: Use std::array for INSERT_PADDING_* macros.bunnei
- Zero initialization here is useful for determinism.
2019-11-03common/bit_field: Remove FORCE_INLINE calls Tobias
See bunneis comment here https://github.com/citra-emu/citra/pull/4629#discussion_r258533167. They were supposed to be removed by him, but he missed them.
2019-03-20common/bit_util: Fix bad merge duplicating the copy constructorLioncash
Introduced as a result of #2090, we already define the copy constructor further down below, so this isn't needed.
2019-03-20Merge pull request #2090 from FearlessTobi/port-4599bunnei
Port citra-emu/citra#4244 and citra-emu/citra#4599: Changes to BitField
2019-03-07common/bit_field: Make BitField trivially copyableLioncash
This makes the class much more flexible and doesn't make performing copies with classes that contain a bitfield member a pain. Given BitField instances are only intended to be used within unions, the fact the full storage value would be copied isn't a big concern (only sizeof(union_type) would be copied anyways). While we're at it, provide defaulted move constructors for consistency.
2019-02-13Make bitfield assignment operator publicfearlessTobi
This change needs to be made to get the code compiling again. It was suggested after a conversation with Lioncash. The conversation can be seen here: https://user-images.githubusercontent.com/20753089/45064197-b6107800-b0b2-11e8-9db8-f696299fb86a.PNG
2019-02-06common/bitfield: make it endianness-awareWeiyi Wang
2018-11-16Common/Bitfield: store value as unsigned typeWeiyi Wang
Storing signed type causes the following behaviour: extractValue can do overflow/negative left shift. Now it only relies on two implementation-defined behaviours (which are almost always defined as we want): unsigned->signed conversion and signed right shift
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-08-21bit_field: Convert ToBool() into explicit operator boolLioncash
Gets rid of a TODO that is long overdue.
2018-04-17bit_field: Remove is_pod check, add is_trivially_copyable_v.bunnei
2018-04-13bit_field: Make all methods constexpr.bunnei
2017-05-24Common: Clean up meta-template logic in BitFieldYuri Kunde Schlesner
2017-05-24Make BitField and ResultCode constexpr-initializableYuri Kunde Schlesner
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot
2016-02-21AudioCore: Skeleton ImplementationMerryMage
This commit: * Adds a new subproject, audio_core. * Defines structures that exist in DSP shared memory. * Hooks up various other parts of the emulator into audio core. This sets the foundation for a later HLE DSP implementation.
2016-02-12BitField: Make trivially copyable and remove assignment operatorMerryMage
2015-10-01bit_field: Re-enable code on MSVCLioncash
2015-08-11Stop defining GCC always_inline attributes as __forceinlinearchshift
__forceinline is a MSVC extension, which may confuse some people working on the codebase. Furthermore, the C++ standard dictates that all names which contain adjacent underscores are reserved.
2015-07-11Merge pull request #914 from yuriks/bitfield-maskYuri Kunde Schlesner
Common: Fix mask generation in BitField
2015-07-10Common: Remove redundant masking in BitFieldYuri Kunde Schlesner
For the signed case, the shifts already remove the rest of the value, so ANDing by the mask is redundant.
2015-07-10Common: Fix mask generation in BitFieldYuri Kunde Schlesner
Fixes #913
2015-06-28Common: Cleanup key_map includes.Emmanuel Gil Peyrot
2015-05-07Common: Remove common.hYuri Kunde Schlesner
2014-12-22Merge pull request #322 from chinhodado/masterbunnei
More warning cleanups
2014-12-21Merge pull request #291 from purpasmart96/licensebunnei
License change
2014-12-21More warning cleanupsChin
2014-12-20License changepurpasmart96
2014-12-20BitField: Add an explicit Assign method.Tony Wasserka
This is useful when doing crazy stuff like inheriting from BitField.
2014-10-25bit_field: Fix a typo in the sample usage.Lioncash
2014-07-16BitField: Cast enum values to proper integer type.Tony Wasserka
2014-07-16BitField: Add a static_assert.Tony Wasserka
Being able to store BitField within unions requires BitField to be of standard layout, which in turn is only given if the underlying type is also has standard layout.
2014-07-16BitField: Delete copy assignment to prevent obscure bugs.Tony Wasserka
Cf. https://github.com/dolphin-emu/dolphin/pull/483
2014-07-16BitField: Add an explicit evaluation method.Tony Wasserka
Sometimes it can be beneficial to use this in places where an explicit cast needs to happen otherwise. By using the evaluation method, it's not necessary anymore to explicitly write the underlying type in this case.
2014-05-08removed incorrect dolphin copyright linebunnei
2014-05-07fixed include of common in bit_field.hbunnei
2014-05-07added BitField to commonbunnei