i haven't had my hands on an EM64T to measure

Apparently you don't need one to tinker with this particular problem, as 32-bit P4 core seems to suffer from the same problem. At the very least a) gcc 3.3.x generated RC4_CHAR code is 40% faster than RC4_INT hand-coded one; b) a hand-coded RC4_CHAR implementation performs 2.8 times faster than RC4_INT hand-coded one (and 2 times faster than RC4_CHAR code generated by gcc 3.3.x:-). At the same time it should be noted that the above mentioned hand-coded RC4_CHAR implementation performs 2.5 times slower on PIII [if compared to original hand-coded RC4_INT one], which means that it can't just replace it:-( I'll make some more experiments and regroup... But given the performance swing amplitude (2.5x one way or another) we most likely would have to detect P4 at run-time and fall down to alternative code path... In *both* 32- and 64-bit cases... I assume the check for Hyperthreading flag in CPU capabilities vector would be sufficient to identify P4 core [either 32- or 64-bit one]. A.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]

Reply via email to