e88e506969
Speculative improvement for b/413675390, but there is insufficient information in the bug to really be sure, and benchmarking does not seem to give consistent results. It seems that crypto_md32_* are not getting inlined when being built with the NDK, which means we're not specializing by block size and we're calling the block data functions indirectly. It's unclear what changed here, as this code has been the same for a while. The root cause might have been a compiler change. Either way, switching to templates avoids tempting the compiler into doing this, without the mess of macros that we had a while ago. Inspecting the assembly, this seems to fix the codegen, but benchmarking performance on my test device is very inconsistent. Change-Id: Ib7c1e97d4d7a3e3b82a8cc5f0418b8b1100c330d Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/78989 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com> Auto-Submit: David Benjamin <davidben@google.com>