summaryrefslogtreecommitdiff
path: root/include/byte_order_generic.h
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-21981 Replace arithmetic + with bitwise OR when possibleMarko Mäkelä2020-03-191-26/+27
| | | | | | | | | | | | | | | | | | | | Several macros such as sint2korr() and uint4korr() are using the arithmetic + operator while a bitwise or operator would suffice. GCC 5 and clang 5 and later can detect patterns consisting of bitwise or and shifts by multiples of 8 bits, such as those used in the InnoDB function mach_read_from_4(). They actually translate that verbose low-level code into high-level machine language (i486 bswap instruction or fused into the Haswell movbe instruction). We should do the same for MariaDB Server code that is outside InnoDB. Note: The Microsoft C compiler is lacking this optimization. There, we might consider using _byteswap_ushort(), _byteswap_ulong(), _byteswap_uint64(). But, those would lead to unaligned reads, which are bad for reasons stated in MDEV-20277. Besides, outside InnoDB, most data is already being stored in the native little-endian format of that compiler.
* Update FSF addressVicențiu Ciorbaru2019-05-111-1/+1
|
* Temporary commit of 10.0-mergeMichael Widenius2013-03-261-0/+95