aboutsummaryrefslogtreecommitdiffstats
path: root/include/bit_ops.h
Commit message (Collapse)AuthorAgeFilesLines
* Move util functions into utils/ modulelloyd2008-09-281-89/+0
|
* Slight cleanup in loop iterationlloyd2008-09-151-2/+2
|
* Use a nibble-wide lookup table to reduce loop iterationslloyd2008-09-051-3/+5
|
* Change return type of ctz from int to u32bitlloyd2008-09-051-1/+1
|
* Replace __builtin_ctzl with a new ctz function in bit_ops.hlloyd2008-09-051-1/+12
|
* Define the functions from bit_ops.h as inline template functions, insteadlloyd2008-09-051-6/+58
| | | | of always converting to u64bit and passing to a non-inlined function.
* Remove code moved to bswap.h and rotate.h, also split xor_buf intolloyd2008-09-021-71/+0
| | | | | | xor_buf.h. The optimization using reinterpret_cast previously used in the amd64 module is now used directly in the stock header, as long as BOTAN_TARGET_UNALIGNED_LOADSTOR_OK is set.
* Change the copyrights in all files in the Botan tree to directly reflectlloyd2008-04-101-1/+1
| | | | | | the actual copyright holders. For rationale, see my post to botan-devel on April 9, subject 'Changing license to directly reflect contributors' (http://www.randombit.net/pipermail/botan-devel/2008-April/000527.html)
* Wrap lineslloyd2008-03-141-1/+2
|
* Alas, my definition of the new improved reverse_bytes for 64-bit values waslloyd2008-03-091-2/+5
| | | | wrong, and didn't work at all. New corrected (and tested) version.
* Also inline xor_buf, both for immediate effeciency gains and for futurelloyd2008-03-091-3/+31
| | | | writing of it in assembly.
* Put reverse_bytes into bit_ops.h so they can be inlined. Rewrite the versionlloyd2008-03-081-4/+17
| | | | | | | for 64-bit to not use 64-bit constants - that way GCC won't complain everwhere. Plan is for a module to replace all of these with asm (bswap, xchg on x86), at least for x86-64
* Mass update of the copyright date. Honestly I don't know why I bother,lloyd2008-02-141-1/+1
| | | | | | | but might as well keep it up to date. And it's easier to do it once with a 'perl -pi' command than to update each file over time. Apologies to anyone looking at diffs.
* Move reverse_bytes from bit_ops.h to bit_ops.cpplloyd2007-10-211-19/+3
|
* bit_ops.h no longer includes loadstor.hlloyd2007-10-191-3/+25
| | | | | | | | | Where loadstor.h was needed but only implicitly included via bit_ops.h, include it directly Add endian reversal functions to bit_ops.h Remove some unneeded includes in big_ops2.cpp and a few other files.
* Avoid C-style casts (as detected by GCC's -Wold-style-cast) and instead use lloyd2007-07-231-2/+6
| | | | static_cast or reinterpret_cast, as needed.
* Move the load/store operations to their own header, to allow assemblylloyd2007-07-231-166/+2
| | | | or other non-portable implementations as modules.
* Write functions to handle loading and saving words a block at a time, taking ↵lloyd2007-05-311-0/+140
| | | | | | | | | | | | | | | | | | into account endian differences. The current code does not take advantage of the knowledge of which endianness we are running on; an optimization suggested by Yves Jerschow is to use (unsafe) casts to speed up the load/store operations. This turns out to provide large performance increases (30% or more) in some cases. Even without the unsafe casts, this version seems to average a few percent faster, probably because the longer loading loops have been partially or fully unrolled. This also makes the code implementing low-level algorithms like ciphers and hashes a bit more succint.
* Bump copyright year to 2007lloyd2007-01-201-1/+1
|
* Initial checkin1.5.6lloyd2006-05-181-0/+64