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

Reply via email to