aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorlloyd <[email protected]>2011-05-12 17:56:08 +0000
committerlloyd <[email protected]>2011-05-12 17:56:08 +0000
commitae7868f4985ce52cefeb5864715b53ecee78f740 (patch)
treefb33fad8be4cbc98be6ad604249aada897f345f1 /doc
parent44aa55d0aeb96d452450df5c024db7275a560925 (diff)
Fix the problem that prevented the SSE2 IDEA implementation from
working correctly under Clang - the technique for emulating unsigned compare relied on signed overflow. The new method does not, and works under GCC, ICC, and Clang. Even better, the compare takes only 2 instructions instead of 4. Prevent using any of the asm implementations under Clang on x86-32. All of them crash under Clang 2.9, unclear why.
Diffstat (limited to 'doc')
-rw-r--r--doc/log.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/doc/log.txt b/doc/log.txt
index 988e4d71d..012a37041 100644
--- a/doc/log.txt
+++ b/doc/log.txt
@@ -15,6 +15,12 @@ Version 1.9.18, Not Yet Released
* Add support for compiling SSL using Visual C++ 2010's TR1
implementation.
+* The SSE2 implementation of IDEA did not work correctly when compiled
+ by Clang, because the trick it used to emulate a 16 bit unsigned
+ compare in SSE (which doesn't contain one natively) relied on signed
+ overflow working in the 'usual' way. A different method that doesn't
+ rely on signed overflow is now used.
+
* Fix a bug under Visual C++ 2010 which would cause ``hex_encode`` to
crash if given a zero-sized input to encode.