Hi, > I would like to submit a patch for md5 calculation on aarch64 architectures.
First of all we have to recognize that MD5 is effectively dead and therefore implementing it in assembly is basically just a useful exercise. This doesn't mean rejection, it only affects the priority. And now to the submission. Assembly programming is hard, so every bit that improves the chances to use on multiple platforms is valued. In the context it means two things: 1. I see no reason for why standard frame can't be used. Also, even though Linux doesn't seem to use x18 which is specified as platform-specific-otherwise-temporary in ABI specification, it doesn't mean that there is no other platform that does (in fact iOS does use it). For this reason I'd insist on avoiding using x18. I suppose that instead you can off-load link register (in standard manner) and use it instead. 2. "Perlasm" has proven useful at multiple occasions when it comes to reusing code on different platforms. Even in the aarch64 case iOS support is planned. For this reason "perlasm" is preferred. See by the way md5-sparcv9.pl, I reckon it's perfectly possible to use it as template. As for configuration line. None is needed as you can achieve the desired effect by passing --cross-compile-prefix=aarch64-apm-linux-gnu- argument to ./Configure linux-aarch64 command. As for performance improvement coefficient. When working on SHA I noticed that code generated by gcc excessively uses inter-register moves between integer and floating-point register banks. Specifying -mgeneral-regs-only when compiling specific module (unfortunately you can't use it as parameter for whole build) reduced the gap in performance significantly. I wonder how does it affect this case. I mean if you could compile MD5 C implementation with -mgeneral-regs-only and compare. Finally I wonder if you can disclose performance results for following benchmarks on your system speed -evp aes-128-cbc speed -evp aes-128-cbc -decrypt speed sha ghash Thanks again. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org