summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/eminline.h
Commit message (Collapse)AuthorAgeFilesLines
* Various optimisations to code generaton. Vas Crabb2023-03-261-1/+1
| | | | | | | | | | | | | | | util/bitmap.cpp, util/palette.cpp: Marked lots of things constexpr. Bitmaps don't throw exceptions on allocation failure, they just become invalid. Almost nothing in MAME actually checks for this. emu/profiler.cpp: Abort if the profile stack overflows rather than throwing an exception. This is a developer feature and if it overflows, the code is broken. Calling a noreturn noexcept function generates less code than throwing an exception, which adds up. util/strformat.cpp: Traded away some unnecessary flexibility for more compact code. The stream objects must derive from std::basic_ostream now - they can't just be any old objects with the expected operators.
* e132xs: Provide new helper functions for extracting signed 16-bit halves AJR2022-10-251-13/+0
| | | | * eminline.h: Remove mul_16x16 function
* eminline.h: Additions AJR2022-09-251-0/+81
| | | | | | - Add mul_16x16 inline function to perform a signed 16x16-bit multiplication with 32-bit result. This was moved from cpu/e132xs to unite it with the analogous 32x32 operations. - Add rotl_32, rotr_32, rotl_64 and rotr_64 inline functions to perform 32-bit and 64-bit circular shifts in either direction by the specified number of places, modulo 32 or 64. It is anticipated that these will eventually be replaced by standard functions in C++20's <bit> header, and so they have been given similar signatures and semantics (which are also validity-checked). - Remove LSL, LSR, ROL and ROR macros from cpu/arm and cpu/arm7 to ameliorate unnecessary obfuscation.
* Added helpers for 64-bit count leading zeroes/ones. Vas Crabb2021-06-131-7/+40
|
* -getaway.cpp: Fixed steering control. Vas Crabb2021-01-231-16/+2
| | | | | | | | | | * Works fine with an analog stick/wheel, difficult to steer on the slippery "dotted" surface with keyboard/D-pad. -osd: Moved GCC intrinsics out of eminline.h so MAME_NOASM will take the pure C++ implementation with GCC (makes testing the fallback easier). -Removed a bunch of [[maybe_unused]] that aren't actually needed.
* -osd: Clean up inline maths utilities. Vas Crabb2021-01-181-41/+71
| | | | | | | | | | * Removed inline assembly for operations compilers handle well. * Added ARM and AArch64 implementation for a few operations. * Added unsigned integer add with carry out operations. -cpu/drccache.cpp: Detect whether RWX pages are supported. -dynax.cpp: Improved a few hanafuda DIP switch descriptions.
* windows: reduce minimum window height (nw) hap2020-06-261-1/+1
|
* (nw) Clean up the mess on master Vas Crabb2019-03-261-0/+58
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-58/+0
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* add GCC/clang implementations of 64*64->128 multiply for x86_64, and adjust ↵ Vas Crabb2019-02-161-4/+6
| | | | some integer casts
* osd: 64x64 multiply helpers (nw) Patrick Mackinlay2019-02-161-0/+56
| | | | Can we have these? I didn't attempt to add implementations for anything other than MSVC, but I believe gcc and clang for 64-bit targets have equivalents.
* fix count_leading_zeroes(0) C fallback (nw) Vas Crabb2018-03-221-1/+2
|
* Merge popcount implementation in emucore.h with the new eminline (nw) AJR2017-10-241-0/+8
|
* C+14 dammit (nw) Vas Crabb2017-10-241-2/+2
|
* Added 32- and 64-bit population count utilities. Only used in ARM7 core for ↵ Vas Crabb2017-10-241-0/+63
| | | | now. Requires -msse4.2 or -mpopcnt to use CPU feature on x86, requires -mpopcntb to use CPU feature on POWER.
* clean up inlines (nw) Vas Crabb2017-07-091-42/+41
|
* A round of spelling/typographical fixes to source comments (nw) Scott Stone2016-11-241-1/+1
|
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-35/+35
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* Add includes for dependency documentation. (nw) couriersud2016-04-081-0/+3
|
* remove asm part for atomic implementations (nw) Miodrag Milanovic2016-03-011-236/+0
|
* Use std::atomic and std::mutex where applicable (nw) Miodrag Milanovic2016-03-011-16/+0
|
* macro removal INLINE -> static inline (nw) Miodrag Milanovic2015-12-121-29/+29
|
* Initial conversion of core to C++14. Note that compilers are now limited to ↵ Miodrag Milanovic2015-12-031-2/+2
| | | | GCC 4.9.0 and up, Clang 3.4.0 and up, and VS2013 and up [Miodrag Milanovic]
* did license settings for OG and Andrew, cleared up OSD part for licenses (nw) Miodrag Milanovic2015-05-091-5/+2
|
* Added license headers to the rest of files (nw) Miodrag Milanovic2015-05-071-0/+2
|
* Bring back NOASM Vas Crabb2015-04-011-1/+1
|
* removed windows/osinline.h and placed MSVC dependent files in top folder (nw) Miodrag Milanovic2015-03-301-2/+112
| | | | | | moved MSVC defines from winprefix.h to osdcomm.h removed empty file compilation - porttime.c removed osinline.h in windows and sdl and change files using them.
* Moved eminline and related files into /src/osd since it's system related (nw) Miodrag Milanovic2014-04-161-0/+457
Moved delegates into /src/lib/util to enable usage of delegates in other project parts Moved mame_printf_* calls into /src/osd/osdcore.c and renamed them to osd_printf_* Changed mess.mak to display compilation of ymmu100.ppm nicely