aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/simd_32/simd_sse.h
Commit message (Collapse)AuthorAgeFilesLines
* Split the SIMD implementations into their own modules and choose onelloyd2011-05-241-169/+0
| | | | at config time.
* Maintainer mode warning cleanups, mostly for C style casts which Illoyd2011-04-181-3/+3
| | | | added to the flags here.
* Another castlloyd2011-02-091-1/+1
|
* Some casts to avoid VC warningslloyd2011-02-091-3/+3
|
* Use size_t for shift and rotate values. Also define rotate_left andlloyd2010-12-281-4/+4
| | | | | rotate_right for SIMD types as a template specialization to avoid problems in the amalgamation.
* Use "/*" instead of "/**" in starting comments at the begining of a file.lloyd2010-06-071-1/+1
| | | | | This caused Doxygen to think this was markup meant for it, which really caused some clutter in the namespace page.
* Add operator& and non-mutating rotates to SIMD_32lloyd2010-01-121-0/+5
|
* Full working amalgamation build, plus internal-only headers concept.lloyd2009-12-161-1/+4
|
* Make sure the SIMD_32 implementation we're using actually works on thelloyd2009-11-241-1/+1
| | | | system before returning a new instance.
* Add an andc operation, in SSE2 and AltiVec, may be useful for Serpent sboxeslloyd2009-11-041-2/+7
|
* Give each version of SIMD_32 a public bswap()lloyd2009-10-291-11/+11
|
* Add new function enabled() to each of the SIMD_32 instantiations which lloyd2009-10-291-1/+4
| | | | | returns true if they might plausibly work. AltiVec and SSE2 versions call into CPUID, scalar version always works.
* Add copyright + license on the new SIMD fileslloyd2009-10-281-0/+3
|
* Define SSE rotate_right in terms of rotate left, and load_be in termslloyd2009-10-281-3/+2
| | | | of load_le + bswap
* Add subtraction operators to SIMD_32 classes, needed for XTEA decryptlloyd2009-10-261-0/+10
|
* Add a wrapper for a set of SSE2 operations with convenient syntax for 4x32lloyd2009-10-261-0/+141
operations. Also add a pure scalar code version. Convert Serpent to use this new interface, and add an implementation of XTEA in SIMD. The wrappers plus the scalar version allow SIMD-ish code to work on all platforms. This is often a win due to better ILP being visible to the processor (as with the recent XTEA optimizations). Only real danger is register starvation, mostly an issue on x86 these days. So it may (or may not) be a win to consolidate the standard C++ versions and the SIMD versions together. Future work: - Add AltiVec/VMX version - Maybe also for ARM's NEON extension? Less pressing, I would think. - Convert SHA-1 code to use SIMD_32 - Add XTEA SIMD decryption (currently only encrypt) - Change SSE2 engine to SIMD_engine - Modify configure.py to set BOTAN_TARGET_CPU_HAS_[SSE2|ALTIVEC|NEON|XXX] macros